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 class BindingMode
public enum BindingMode
type BindingMode =
Public Enum BindingMode
- Dědičnost
-
BindingMode
Pole
Name | Hodnota | Description |
---|---|---|
Default | 0 | Při použití v vazbách označuje, že vazba by měla použít DefaultBindingMode. Při použití v BindableProperty deklarace, výchozí bindingMode.OneWay. |
TwoWay | 1 | Označuje, že vazba by měla šířit změny ze zdroje (obvykle Model zobrazení) na cíl (BindableObject) v obou směrech. |
OneWay | 2 | Označuje, že vazba by měla šířit pouze změny ze zdroje (obvykle View Model) na cíl (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) na zdroj (obvykle View Model). Používá se hlavně pro hodnoty BindableProperty jen pro čtení. |
OneTime | 4 | Označuje, že vazba bude použita pouze v případě, že se kontext vazby změní a hodnota nebude sledována pro změny s |
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"