BindingMode BindingMode Enum

Определение

Направление синхронизации изменений для привязок.The direction of changes propagation for bindings.

public enum BindingMode
type BindingMode = 
Наследование
BindingModeBindingMode

Поля

Default Default 0

При использовании в привязках указывает, что привязка должна использовать DefaultBindingMode.When used in Bindings, indicates that the Binding should use the DefaultBindingMode. При использовании в объявлении BindableProperty по умолчанию равно BindingMode.OneWay.When used in BindableProperty declaration, defaults to BindingMode.OneWay.

OneTime OneTime 4

Указывает, что привязка будет применяться только в том случае, если контекст привязки изменяется и значение не будет отслеживаться на предмет изменений с INotifyPropertyChanged.Indicates that the binding will be applied only when the binding context changes and the value will not be monitored for changes with INotifyPropertyChanged.

OneWay OneWay 2

Указывает, что привязка должна распространять изменения только из источника (обычно это модель представления) в целевой объект (BindableObject).Indicates that the binding should only propagate changes from source (usually the View Model) to target (the BindableObject). Этот режим используется по умолчанию для большинства значений BindableProperty.This is the default mode for most BindableProperty values.

OneWayToSource OneWayToSource 3

Указывает, что привязка должна распространять изменения только из целевого объекта (BindableObject) в источник (обычно модель представления).Indicates that the binding should only propagate changes from target (the BindableObject) to source (usually the View Model). Используется, главным образом, для значений BindableProperty только для чтения.This is mainly used for read-only BindableProperty values.

TwoWay TwoWay 1

Указывает, что привязка должна распространять изменения из источника (обычно это модель представления) в целевой объект (BindableObject) в обоих направлениях.Indicates that the binding should propagates changes from source (usually the View Model) to target (the BindableObject) in both directions.

Комментарии

Ниже приведены некоторые варианты использования BindingMode.The following examples shows some BindingMode use cases.


public class PersonViewModel
{
  public string Name { get; set; }
  public string Company { get; set; }
}
    
Label label;
PersonViewModel viewmodel;
    
//BindingMode.OneWay
label = new Label ();
label.BindingContext = viewmodel = new PersonViewModel ();
label.SetBinding<PersonViewModel> (Label.TextProperty, vm => vm.Name, mode: BindingMode.OneWay);
    
viewmodel.Name = "John Doe";
Debug.WriteLine (label.Text); //prints "John Doe"
label.Text = "Foo";
Debug.WriteLine (viewmodel.Name); //prints "John Doe"
    

//BindingMode.TwoWay label = new Label (); label.BindingContext = viewmodel = new PersonViewModel (); label.SetBinding<PersonViewModel> (Label.TextProperty, vm => vm.Name, mode: BindingMode.TwoWay);

viewmodel.Name = "John Doe"; Debug.WriteLine (label.Text); //prints "John Doe" label.Text = "Foo"; Debug.WriteLine (viewmodel.Name); //prints "Foo"

//BindingMode.OneWayToSource label = new Label (); label.BindingContext = viewmodel = new PersonViewModel (); label.SetBinding<PersonViewModel> (Label.TextProperty, vm => vm.Name, mode: BindingMode.OneWayToSource);

viewmodel.Name = "John Doe"; Debug.WriteLine (label.Text); //prints "" label.Text = "Foo"; Debug.WriteLine (viewmodel.Name); //prints "Foo"

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