Partager via


BindableObjectExtensions.SetBinding Méthode

Définition

Surcharges

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

Crée et applique une liaison à une propriété.

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

Crée une liaison entre une propriété sur l’objet source et une propriété sur l’objet cible.

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

Source:
BindableObjectExtensions.cs
Source:
BindableObjectExtensions.cs

Crée et applique une liaison à une propriété.

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)

Paramètres

targetProperty
BindableProperty

BindableProperty sur lequel définir une liaison.

path
String

String indiquant le chemin de la propriété à lier.

mode
BindingMode

BindingMode pour la liaison. Ce paramètre est facultatif. La valeur par défaut est Default.

converter
IValueConverter

IValueConverter pour la liaison. Ce paramètre est facultatif. La valeur par défaut est null.

stringFormat
String

Chaîne utilisée comme stringFormat pour la liaison. Ce paramètre est facultatif. La valeur par défaut est null.

Remarques

L’exemple suivant montre comment utiliser la méthode d’extension pour définir une liaison.

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"

S’applique à

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

Source:
BindableObjectExtensions.cs

Crée une liaison entre une propriété sur l’objet source et une propriété sur l’objet cible.

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)

Paramètres de type

TSource

Type de source.

TProperty

Type de propriété.

Paramètres

targetProperty
BindableProperty

BindableProperty Sur lequel définir une liaison.

getter
Func<TSource,TProperty>

Méthode getter utilisée pour récupérer la propriété source.

mode
BindingMode

Mode de liaison. Cette propriété est facultative. La valeur par défaut est Default.

converter
IValueConverter

Convertisseur. Ce paramètre est facultatif. La valeur par défaut est null.

converterParameter
Object

Paramètre défini par l’utilisateur à passer au convertisseur. Ce paramètre est facultatif. La valeur par défaut est null.

stringFormat
String

Format de chaîne. Ce paramètre est facultatif. La valeur par défaut est null.

source
Object

Objet utilisé comme source pour cette liaison. Ce paramètre est facultatif. La valeur par défaut est null.

fallbackValue
Object

Valeur à utiliser au lieu de la valeur par défaut de la propriété, si aucune valeur spécifiée n’existe.

targetNullValue
Object

Valeur à fournir pour une propriété liée lorsque la cible de la liaison est null.

Exceptions

Remarques

L’exemple suivant illustre le paramètre d’une liaison à l’aide de la méthode d’extension.

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"

Toutes les méthodes ne peuvent pas être utilisées pour définir une liaison. L’expression doit être une expression d’accès aux propriétés simple. Voici des exemples d’expressions valides et non valides :

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

S’applique à