Udostępnij za pośrednictwem


BindableObjectExtensions.SetBinding Metoda

Definicja

Przeciążenia

SetBinding(BindableObject, BindableProperty, String, BindingMode, IValueConverter, String)

Tworzy i stosuje powiązanie do właściwości.

SetBinding<TSource,TProperty>(BindableObject, BindableProperty, Func<TSource,TProperty>, BindingMode, IValueConverter, Object, String, Object, Object, Object)

Tworzy powiązanie między właściwością obiektu źródłowego a właściwością obiektu docelowego.

SetBinding(BindableObject, BindableProperty, String, BindingMode, IValueConverter, String)

Źródło:
BindableObjectExtensions.cs
Źródło:
BindableObjectExtensions.cs

Tworzy i stosuje powiązanie do właściwości.

public static void SetBinding (this Microsoft.Maui.Controls.BindableObject self, Microsoft.Maui.Controls.BindableProperty targetProperty, string path, Microsoft.Maui.Controls.BindingMode mode = Microsoft.Maui.Controls.BindingMode.Default, Microsoft.Maui.Controls.IValueConverter converter = default, string stringFormat = default);
static member SetBinding : Microsoft.Maui.Controls.BindableObject * Microsoft.Maui.Controls.BindableProperty * string * Microsoft.Maui.Controls.BindingMode * Microsoft.Maui.Controls.IValueConverter * string -> unit
<Extension()>
Public Sub SetBinding (self As BindableObject, targetProperty As BindableProperty, path As String, Optional mode As BindingMode = Microsoft.Maui.Controls.BindingMode.Default, Optional converter As IValueConverter = Nothing, Optional stringFormat As String = Nothing)

Parametry

targetProperty
BindableProperty

Właściwość BindableProperty, na której należy ustawić powiązanie.

path
String

A String wskazująca ścieżkę właściwości, z którą ma być powiązana.

mode
BindingMode

Element BindingMode dla powiązania. Ten parametr jest opcjonalny. Wartość domyślna to Default.

converter
IValueConverter

Element IValueConverter dla powiązania. Ten parametr jest opcjonalny. Wartość domyślna to null.

stringFormat
String

Ciąg używany jako stringFormat dla powiązania. Ten parametr jest opcjonalny. Wartość domyślna to null.

Uwagi

W poniższym przykładzie pokazano, jak za pomocą metody rozszerzenia ustawić powiązanie.

public class PersonViewModel
{
    public string Name { get; set; }
    public string Company { get; set; }
}

// ...

var vm = new PersonViewModel {
    Name = "John Doe", 
    Company = "Xamarin"
}

var label = new Label ();
label.SetBinding (Label.TextProperty, "Name"); // "Name" is the property on the view model
label.BindingContext = vm;

Debug.WriteLine (label.Text); // prints "John Doe"

Dotyczy

SetBinding<TSource,TProperty>(BindableObject, BindableProperty, Func<TSource,TProperty>, BindingMode, IValueConverter, Object, String, Object, Object, Object)

Źródło:
BindableObjectExtensions.cs

Tworzy powiązanie między właściwością obiektu źródłowego a właściwością obiektu docelowego.

public static void SetBinding<TSource,TProperty> (this Microsoft.Maui.Controls.BindableObject self, Microsoft.Maui.Controls.BindableProperty targetProperty, Func<TSource,TProperty> getter, Microsoft.Maui.Controls.BindingMode mode = Microsoft.Maui.Controls.BindingMode.Default, Microsoft.Maui.Controls.IValueConverter? converter = default, object? converterParameter = default, string? stringFormat = default, object? source = default, object? fallbackValue = default, object? targetNullValue = default);
static member SetBinding : Microsoft.Maui.Controls.BindableObject * Microsoft.Maui.Controls.BindableProperty * Func<'Source, 'Property> * Microsoft.Maui.Controls.BindingMode * Microsoft.Maui.Controls.IValueConverter * obj * string * obj * obj * obj -> unit
<Extension()>
Public Sub SetBinding(Of TSource, TProperty) (self As BindableObject, targetProperty As BindableProperty, getter As Func(Of TSource, TProperty), Optional mode As BindingMode = Microsoft.Maui.Controls.BindingMode.Default, Optional converter As IValueConverter = Nothing, Optional converterParameter As Object = Nothing, Optional stringFormat As String = Nothing, Optional source As Object = Nothing, Optional fallbackValue As Object = Nothing, Optional targetNullValue As Object = Nothing)

Parametry typu

TSource

Typ źródła.

TProperty

Typ właściwości.

Parametry

targetProperty
BindableProperty

Właściwość BindableProperty , na której ma być ustawione powiązanie.

getter
Func<TSource,TProperty>

Metoda getter używana do pobierania właściwości źródłowej.

mode
BindingMode

Tryb powiązania. Ta właściwość jest opcjonalna. Wartość domyślna to Default.

converter
IValueConverter

Konwerter. Ten parametr jest opcjonalny. Wartość domyślna to null.

converterParameter
Object

Parametr zdefiniowany przez użytkownika do przekazania do konwertera. Ten parametr jest opcjonalny. Wartość domyślna to null.

stringFormat
String

Format ciągu. Ten parametr jest opcjonalny. Wartość domyślna to null.

source
Object

Obiekt używany jako źródło tego powiązania. Ten parametr jest opcjonalny. Wartość domyślna to null.

fallbackValue
Object

Wartość do użycia zamiast wartości domyślnej właściwości, jeśli nie istnieje określona wartość.

targetNullValue
Object

Wartość, która ma być dostarczana dla właściwości powiązanej, gdy elementem docelowym powiązania jest null.

Wyjątki

Uwagi

Poniższy przykład ilustruje ustawienie powiązania przy użyciu metody rozszerzenia.

public class PersonViewModel
{
    public string Name { get; set; }
    public Address? Address { get; set; }
    // ...
}

var vm = new PersonViewModel { Name = "John Doe" };

var label = new Label();
label.SetBinding(Label.TextProperty, static (PersonViewModel vm) => vm.Name);
label.BindingContext = vm;

vm.Name = "Jane Doe";
Debug.WriteLine(label.Text); // prints "Jane Doe"

Nie wszystkie metody mogą służyć do definiowania powiązania. Wyrażenie musi być prostym wyrażeniem dostępu do właściwości. Poniżej przedstawiono przykłady prawidłowych i nieprawidłowych wyrażeń:

// Valid: Property access
static (PersonViewModel vm) => vm.Name;
static (PersonViewModel vm) => vm.Address?.Street;

// Valid: Array and indexer access
static (PersonViewModel vm) => vm.PhoneNumbers[0];
static (PersonViewModel vm) => vm.Config["Font"];

// Valid: Casts
static (Label label) => (label.BindingContext as PersonViewModel).Name;
static (Label label) => ((PersonViewModel)label.BindingContext).Name;

// Invalid: Method calls
static (PersonViewModel vm) => vm.GetAddress();
static (PersonViewModel vm) => vm.Address?.ToString();

// Invalid: Complex expressions
static (PersonViewModel vm) => vm.Address?.Street + " " + vm.Address?.City;
static (PersonViewModel vm) => $"Name: {vm.Name}";

Dotyczy