BindableObjectExtensions.SetBinding Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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
- self
- BindableObject
- targetProperty
- BindableProperty
Właściwość BindableProperty, na której należy ustawić powiązanie.
- 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
- self
- BindableObject
- 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}";