BindableObjectExtensions.SetBinding Метод

Определение

Перегрузки

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

Создает и применяет привязку к свойству.

SetBinding<TSource>(BindableObject, BindableProperty, Expression<Func<TSource,Object>>, BindingMode, IValueConverter, String)
Является устаревшей.

Создает и применяет привязку из выражения.

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

Создает и применяет привязку к свойству.

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

Параметры

targetProperty
BindableProperty

Свойство BindableProperty, для которого необходимо задать привязку.

path
String

Строка String, содержащая путь к свойству, к которому устанавливается привязка.

mode
BindingMode

BindingMode для привязки. Этот параметр является необязательным. По умолчанию — Default.

converter
IValueConverter

IValueConverter для привязки. Этот параметр является необязательным. По умолчанию — null.

stringFormat
String

Строка, используемая как stringFormat для привязки. Этот параметр является необязательным. По умолчанию — null.

Комментарии

В следующем примере показано, как использовать метод расширения для задания привязки.

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"

Применяется к

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

Внимание!

Теперь этот API является нерекомендуемым.

Создает и применяет привязку из выражения.

[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

Параметры типа

TSource

Тип источника данных.

Параметры

self
BindableObject

Объект BindableObject.

targetProperty
BindableProperty

Объект BindableProperty, к которому требуется выполнить привязку.

sourceProperty
Expression<Func<TSource,Object>>

Выражение, используемое для получения исходного пути.

mode
BindingMode

Режим BindingMode для привязки. Этот параметр является необязательным. По умолчанию — Default.

converter
IValueConverter

Интерфейс IValueConverter для привязки. Этот параметр является необязательным. По умолчанию — null.

stringFormat
String

Строка, используемая как stringFormat для привязки. Этот параметр является необязательным. По умолчанию — null.

Атрибуты

Комментарии

Этот метод расширения использует выражение вместо пути для создания и установки привязок. Использование выражений является более удобным для рефакторинга.

В следующем примере показана настройка привязки с помощью метода расширения.

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"

Применяется к