BindingMode 列挙型
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
バインドの変更の伝達の方向。
public enum BindingMode
type BindingMode =
- 継承
-
System.EnumBindingMode
フィールド
Default | 0 | Bindings で使用すると、Bindings が DefaultBindingMode を使用する必要があることを示します。 BindableProperty 宣言で使用すると、既定値を BindingMode.OneWay に設定します。 |
OneTime | 4 | バインド コンテキストが変更された場合にのみバインドが適用され、値が を使用 |
OneWay | 2 | バインドはソース (通常はビュー モデル) からターゲット (BindableObject) に対してのみ変更を伝達する必要があることを示します。 これは、ほとんどの BindableProperty 値に対する既定のモードです。 |
OneWayToSource | 3 | バインドはターゲット (BindableObject) からソース (通常はビュー モデル) に対してのみ変更を伝達する必要があることを示します。 これは主に読み取り専用の BindableProperty 値について使用されます。 |
TwoWay | 1 | バインドはソース (通常はビュー モデル) とターゲット (BindableObject) の間で両方向に変更を伝達する必要があることを示します。 |
注釈
次の例では、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"