BindingMode 열거형
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
바인딩에 대한 변경 전파 방향입니다.
public enum BindingMode
type BindingMode =
- 상속
-
System.EnumBindingMode
필드
Default | 0 | 바인딩에 사용할 경우 바인딩이 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"