BindableObjectExtensions.SetBinding Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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)
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
- self
- BindableObject
- targetProperty
- BindableProperty
BindableProperty, na kterém chcete nastavit vazbu.
- 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)
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
- self
- BindableObject
- 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 null
cí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}";