Sdílet prostřednictvím


BindableObjectExtensions.SetBinding Metoda

Definice

Přetížení

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

Vytvoří a použije vazbu na vlastnost.

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

Vytvoří vazbu mezi vlastností zdrojového objektu a vlastností cílového objektu.

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

Zdroj:
BindableObjectExtensions.cs
Zdroj:
BindableObjectExtensions.cs

Vytvoří a použije vazbu na vlastnost.

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

BindableProperty, na kterém chcete nastavit vazbu.

path
String

Označuje String cestu vlastnosti, ke které se má vytvořit vazba.

mode
BindingMode

Vazba BindingMode . Tento parametr je volitelný. Výchozí hodnota je Default.

converter
IValueConverter

A IValueConverter pro vazbu. Tento parametr je volitelný. Výchozí hodnota je null.

stringFormat
String

Řetězec použitý jako stringFormat pro vazbu. Tento parametr je volitelný. Výchozí hodnota je null.

Poznámky

Následující příklad ukazuje, jak použít rozšiřující metodu k nastavení vazby.

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"

Platí pro

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

Zdroj:
BindableObjectExtensions.cs

Vytvoří vazbu mezi vlastností zdrojového objektu a vlastností cílového objektu.

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 zdroje.

TProperty

Typ vlastnosti.

Parametry

targetProperty
BindableProperty

Nastavení BindableProperty vazby

getter
Func<TSource,TProperty>

Metoda getter použitá k načtení zdrojové vlastnosti.

mode
BindingMode

Režim vazby. Tato vlastnost je nepovinná. Výchozí hodnota je Default.

converter
IValueConverter

Převaděč. Tento parametr je volitelný. Výchozí hodnota je null.

converterParameter
Object

Uživatelem definovaný parametr, který se má předat převaděči. Tento parametr je volitelný. Výchozí hodnota je null.

stringFormat
String

Formát řetězce. Tento parametr je volitelný. Výchozí hodnota je null.

source
Object

Objekt použitý jako zdroj pro tuto vazbu. Tento parametr je volitelný. Výchozí hodnota je null.

fallbackValue
Object

Hodnota, která se má použít místo výchozí hodnoty vlastnosti, pokud neexistuje žádná zadaná hodnota.

targetNullValue
Object

Hodnota, která se má zadat pro vázanou vlastnost, pokud je nullcíl vazby .

Výjimky

Poznámky

Následující příklad ukazuje nastavení vazby pomocí rozšiřující metody.

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"

Ne všechny metody lze použít k definování vazby. Výraz musí být jednoduchý přístupový výraz vlastnosti. Tady jsou příklady platných a neplatných výrazů:

// 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}";

Platí pro