Condividi tramite


BindableObjectExtensions.SetBinding Metodo

Definizione

Overload

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

Crea un'associazione e la applica a una proprietà.

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

Crea un'associazione tra una proprietà nell'oggetto di origine e una proprietà nell'oggetto di destinazione.

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

Origine:
BindableObjectExtensions.cs
Origine:
BindableObjectExtensions.cs

Crea un'associazione e la applica a una proprietà.

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)

Parametri

targetProperty
BindableProperty

BindableProperty per la quale impostare un'associazione.

path
String

Oggetto String che indica il percorso della proprietà da associare.

mode
BindingMode

Enumerazione BindingMode per l'associazione. Il parametro è facoltativo. Il valore predefinito è Default.

converter
IValueConverter

Elemento IValueConverter per l'associazione. Il parametro è facoltativo. Il valore predefinito è null.

stringFormat
String

Stringa usata come stringFormat per l'associazione. Il parametro è facoltativo. Il valore predefinito è null.

Commenti

Nell'esempio seguente viene illustrato come utilizzare il metodo di estensione per impostare un'associazione.

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"

Si applica a

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

Origine:
BindableObjectExtensions.cs

Crea un'associazione tra una proprietà nell'oggetto di origine e una proprietà nell'oggetto di destinazione.

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)

Parametri di tipo

TSource

Tipo di origine.

TProperty

Tipo di proprietà.

Parametri

targetProperty
BindableProperty

Oggetto BindableProperty in cui impostare un'associazione.

getter
Func<TSource,TProperty>

Metodo getter utilizzato per recuperare la proprietà di origine.

mode
BindingMode

Modalità di associazione. Questa proprietà è facoltativa. Il valore predefinito è Default.

converter
IValueConverter

Il convertitore. Il parametro è facoltativo. Il valore predefinito è null.

converterParameter
Object

Un parametro definito dall'utente da passare al convertitore. Il parametro è facoltativo. Il valore predefinito è null.

stringFormat
String

Un formato stringa. Il parametro è facoltativo. Il valore predefinito è null.

source
Object

Un oggetto utilizzato come origine per questa associazione. Il parametro è facoltativo. Il valore predefinito è null.

fallbackValue
Object

Valore da utilizzare anziché il valore predefinito per la proprietà, se non esiste alcun valore specificato.

targetNullValue
Object

Valore da fornire per una proprietà associata quando la destinazione dell'associazione è null.

Eccezioni

Commenti

Nell'esempio seguente viene illustrata l'impostazione di un'associazione usando il metodo di estensione.

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"

Non tutti i metodi possono essere usati per definire un'associazione. L'espressione deve essere un'espressione di accesso alle proprietà semplice. Di seguito sono riportati esempi di espressioni valide e non valide:

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

Si applica a