BindingMode 列挙型
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
バインド内のデータ フローの方向を指定します。
public enum class BindingMode
public enum BindingMode
type BindingMode =
Public Enum BindingMode
- 継承
-
BindingMode
フィールド
| 名前 | 値 | 説明 |
|---|---|---|
| Default | 0 | ターゲット プロパティの既定のバインド モードを使用します。 |
| TwoWay | 1 | いずれかの変更時にターゲットとソースの両方を更新します。 |
| OneWay | 2 | ソースが変更されたときにターゲットを更新します。 |
| OneWayToSource | 3 | ターゲットが変更されたときにソースを更新します。 |
| OneTime | 4 | バインディングの作成時にターゲットを 1 回だけ更新します。 |
注釈
次の例では、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"