BindableObjectExtensions.SetBinding Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Überlädt
SetBinding(BindableObject, BindableProperty, String, BindingMode, IValueConverter, String) |
Erstellt eine Bindung mit einer Eigenschaft und wendet diese an. |
SetBinding<TSource,TProperty>(BindableObject, BindableProperty, Func<TSource,TProperty>, BindingMode, IValueConverter, Object, String, Object, Object, Object) |
Erstellt eine Bindung zwischen einer Eigenschaft für das Quellobjekt und einer Eigenschaft für das Zielobjekt. |
SetBinding(BindableObject, BindableProperty, String, BindingMode, IValueConverter, String)
- Quelle:
- BindableObjectExtensions.cs
- Quelle:
- BindableObjectExtensions.cs
Erstellt eine Bindung mit einer Eigenschaft und wendet diese an.
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)
Parameter
- self
- BindableObject
Die BindableObject.
- targetProperty
- BindableProperty
Die BindableProperty-Klasse, für die eine Bindung festgelegt werden soll.
- mode
- BindingMode
Der BindingMode für die Bindung. Dieser Parameter ist optional. Der Standardwert ist Default.
- converter
- IValueConverter
Eine IValueConverter-Schnittstelle für die Bindung. Dieser Parameter ist optional. Der Standardwert ist null
.
- stringFormat
- String
Eine Zeichenfolge, die als stringFormat-Objekt für die Bindung verwendet werden soll. Dieser Parameter ist optional. Der Standardwert ist null
.
Hinweise
Das folgende Beispiel zeigt, wie sie die Erweiterungsmethode zum Festlegen einer Bindung verwenden.
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"
Gilt für:
SetBinding<TSource,TProperty>(BindableObject, BindableProperty, Func<TSource,TProperty>, BindingMode, IValueConverter, Object, String, Object, Object, Object)
- Quelle:
- BindableObjectExtensions.cs
Erstellt eine Bindung zwischen einer Eigenschaft für das Quellobjekt und einer Eigenschaft für das Zielobjekt.
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)
Typparameter
- TSource
Der Quelltyp.
- TProperty
Der Eigenschaftstyp.
Parameter
- self
- BindableObject
Die BindableObject.
- targetProperty
- BindableProperty
Die BindableProperty Bindung, für die eine Bindung festgelegt werden soll.
- getter
- Func<TSource,TProperty>
Eine getter-Methode, die zum Abrufen der Quelleigenschaft verwendet wird.
- mode
- BindingMode
Der Bindungsmodus. Diese Eigenschaft ist optional. Der Standardwert ist Default.
- converter
- IValueConverter
Der Konverter. Dieser Parameter ist optional. Der Standardwert ist null
.
- converterParameter
- Object
Ein benutzerdefinierter Parameter, der an den Konverter übergeben werden soll. Dieser Parameter ist optional. Der Standardwert ist null
.
- stringFormat
- String
Ein Zeichenfolgenformat. Dieser Parameter ist optional. Der Standardwert ist null
.
- source
- Object
Ein Objekt, das als Quelle für diese Bindung verwendet wird. Dieser Parameter ist optional. Der Standardwert ist null
.
- fallbackValue
- Object
Der wert, der anstelle des Standardwerts für die Eigenschaft verwendet werden soll, wenn kein angegebener Wert vorhanden ist.
- targetNullValue
- Object
Der Wert, der für eine gebundene Eigenschaft angegeben werden soll, wenn das Ziel der Bindung ist null
.
Ausnahmen
Hinweise
Im folgenden Beispiel wird die Einstellung einer Bindung mithilfe der Erweiterungsmethode veranschaulicht.
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"
Nicht alle Methoden können zum Definieren einer Bindung verwendet werden. Der Ausdruck muss ein einfacher Eigenschaftszugriffsausdruck sein. Im Folgenden sind Beispiele für gültige und ungültige Ausdrücke aufgeführt:
// 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}";