Freigeben über


BindableObjectExtensions.SetBinding Methode

Definition

Ü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

targetProperty
BindableProperty

Die BindableProperty-Klasse, für die eine Bindung festgelegt werden soll.

path
String

Ein String-Objekt, das den Eigenschaftspfad angibt, mit dem die Bindung erfolgen 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

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

Gilt für: