BindingMode Výčet

Definice

Směr změn šíření pro vazby.

public enum BindingMode
type BindingMode = 
Dědičnost
BindingMode

Pole

Default 0

Při použití ve vazbách označuje, že vazba by měla použít DefaultBindingMode . Při použití v deklaraci BindableProperty se jako výchozí nastaví BindingMode. OneWay.

OneTime 4

Označuje, že vazba bude použita pouze v případě změny kontextu vazby a hodnota nebude monitorována pro změny pomocí INotifyPropertyChanged.

OneWay 2

Označuje, že vazba by měla šířit pouze změny ze zdroje (obvykle modelu zobrazení) do cíle (BindableObject). Toto je výchozí režim pro většinu hodnot BindableProperty.

OneWayToSource 3

Označuje, že vazba by měla rozšířit pouze změny z Target (BindableObject) na Source (obvykle model zobrazení). To se používá hlavně pro hodnoty BindableProperty jen pro čtení.

TwoWay 1

Označuje, že vazba by měla rozšířit změny ze zdroje (obvykle modelu zobrazení) do cíle (BindableObject) v obou směrech.

Poznámky

Následující příklady ukazují některé případy použití BindingMode.

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 ""
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"

Platí pro