BindingMode Výčet
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Směr šíření změn pro vazby.
public enum BindingMode
type BindingMode =
- Dědičnost
-
System.EnumBindingMode
Pole
Default | 0 | Při použití ve vazbách označuje, že vazba by měla používat DefaultBindingMode. Při použití v deklaraci BindableProperty se výchozí hodnota BindingMode.OneWay. |
OneTime | 4 | Označuje, že vazba se použije pouze v případě, že se kontext vazby změní, a hodnota nebude sledována pro změny pomocí |
OneWay | 2 | Označuje, že vazba by měla šířit pouze změny ze zdroje (obvykle View Model) 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 šířit pouze změny z cíle (BindableObject) do zdroje (obvykle View Model). To se používá hlavně pro hodnoty BindableProperty jen pro čtení. |
TwoWay | 1 | Označuje, že vazba by měla šířit změny ze zdroje (obvykle View Model) 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"