Поделиться через


Binding Конструкторы

Определение

Перегрузки

Binding()

Создает и инициализирует новый экземпляр класса Binding.

Binding(String, BindingMode, IValueConverter, Object, String, Object)

Создает и инициализирует новый экземпляр класса Binding.

Binding()

Создает и инициализирует новый экземпляр класса Binding.

public Binding ();

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

Binding(String, BindingMode, IValueConverter, Object, String, Object)

Создает и инициализирует новый экземпляр класса Binding.

public Binding (string path, Xamarin.Forms.BindingMode mode = Xamarin.Forms.BindingMode.Default, Xamarin.Forms.IValueConverter converter = default, object converterParameter = default, string stringFormat = default, object source = default);
new Xamarin.Forms.Binding : string * Xamarin.Forms.BindingMode * Xamarin.Forms.IValueConverter * obj * string * obj -> Xamarin.Forms.Binding

Параметры

path
System.String

Путь к свойству.

mode
BindingMode

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

converter
IValueConverter

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

converterParameter
System.Object

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

stringFormat
System.String

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

source
System.Object

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

Комментарии

В следующем примере показано, как задать привязку для свойства с помощью BindingMode и Converter:

public class PersonViewModel
{
  public string Name { get; set; }
  public string Company { get; set; }
}

public class ReverseConverter : IValueConverter
{
  public object Convert (object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
  {
    var s = value as string;
    if (s == null)
      return value;
    return new string (s.Reverse ().ToArray ());
  }

  public object ConvertBack (object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
  {
    var s = value as string;
    if (s == null)
      return value;
    return new string (s.Reverse ().ToArray ());
  }
}

var label = new Label ();
PersonViewModel person;
label.BindingContext = person = new PersonViewModel { Name = "John Doe", Company= "Xamarin" };
label.SetBinding (Label.TextProperty, new Binding ("Name", mode: BindingMode.TwoWay, converter: new ReverseConverter ()));
Debug.WriteLine (label.Text); //prints "eoD nhoJ". ReverseConverter.Convert () is invoked in this case.

label.Text = "ooF";
Debug.WriteLine (person.Name); //prints "Foo". ReverseConverter.ConvertBack () is invoked in this case. The label Text change is propagated back as the BindingMode is TwoWay.

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