Compartir a través de


BindableObjectExtensions.SetBinding Método

Definición

Sobrecargas

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

Crea y aplica un enlace a una propiedad.

SetBinding<TSource>(BindableObject, BindableProperty, Expression<Func<TSource,Object>>, BindingMode, IValueConverter, String)
Obsoletos.

Crea y aplica un enlace desde una expresión.

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

Crea y aplica un enlace a una propiedad.

public static void SetBinding (this Xamarin.Forms.BindableObject self, Xamarin.Forms.BindableProperty targetProperty, string path, Xamarin.Forms.BindingMode mode = Xamarin.Forms.BindingMode.Default, Xamarin.Forms.IValueConverter converter = default, string stringFormat = default);
static member SetBinding : Xamarin.Forms.BindableObject * Xamarin.Forms.BindableProperty * string * Xamarin.Forms.BindingMode * Xamarin.Forms.IValueConverter * string -> unit

Parámetros

targetProperty
BindableProperty

BindableProperty en la que se va a establecer un enlace.

path
System.String

Clase System.String que indica la ruta de acceso a la propiedad a la que se va a enlazar.

mode
BindingMode

El BindingMode del enlace. Este parámetro es opcional. El valor predeterminado es Default.

converter
IValueConverter

Interfaz IValueConverter del enlace. Este parámetro es opcional. El valor predeterminado es null.

stringFormat
System.String

Cadena usada como stringFormat para el enlace. Este parámetro es opcional. El valor predeterminado es null.

Comentarios

En el ejemplo siguiente se muestra cómo usar el método de extensión para establecer un enlace.

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"

Se aplica a

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

Precaución

Esta API ya está en desuso.

Crea y aplica un enlace desde una expresión.

[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
[System.Obsolete]
public static void SetBinding<TSource> (this Xamarin.Forms.BindableObject self, Xamarin.Forms.BindableProperty targetProperty, System.Linq.Expressions.Expression<Func<TSource,object>> sourceProperty, Xamarin.Forms.BindingMode mode = Xamarin.Forms.BindingMode.Default, Xamarin.Forms.IValueConverter converter = default, string stringFormat = default);
static member SetBinding : Xamarin.Forms.BindableObject * Xamarin.Forms.BindableProperty * System.Linq.Expressions.Expression<Func<'Source, obj>> * Xamarin.Forms.BindingMode * Xamarin.Forms.IValueConverter * string -> unit

Parámetros de tipo

TSource

Tipo de origen.

Parámetros

self
BindableObject

BindableObject.

targetProperty
BindableProperty

BindableProperty a la que enlazar.

sourceProperty
System.Linq.Expressions.Expression<System.Func<TSource,System.Object>>

Expresión que se usa para recuperar la ruta de acceso de origen.

mode
BindingMode

BindingMode del enlace. Este parámetro es opcional. El valor predeterminado es Default.

converter
IValueConverter

Interfaz IValueConverter del enlace. Este parámetro es opcional. El valor predeterminado es null.

stringFormat
System.String

Cadena usada como stringFormat para el enlace. Este parámetro es opcional. El valor predeterminado es null.

Atributos
System.ComponentModel.EditorBrowsableAttribute System.ObsoleteAttribute

Comentarios

Este método de extensión usa Expression en lugar de la ruta de acceso para crear y establecer enlaces. El uso de expresiones es más fácil de refactorizar.

En este ejemplo se muestra el valor de un enlace mediante el método de extensión .

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<PersonViewModel> (Label.TextProperty, vm => vm.Name);  // "Name" is the property on the view model
label.BindingContext = vm;

Debug.WriteLine (label.Text); // prints "John Doe"

Se aplica a