BindableObjectExtensions.SetBinding Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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
- self
- BindableObject
Le BindableObject.
- targetProperty
- BindableProperty
BindableProperty sur lequel définir une liaison.
- 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
- self
- BindableObject
Le BindableObject.
- 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}";