BindingMode 열거형

정의

바인딩에 대한 변경 전파 방향입니다.The direction of changes propagation for bindings.

public enum BindingMode
type BindingMode = 
상속
BindingMode

필드

Default 0

바인딩에 사용할 경우 바인딩이 DefaultBindingMode를 사용해야 함을 나타냅니다.When used in Bindings, indicates that the Binding should use the DefaultBindingMode. BindableProperty 선언에 사용되는 경우 기본값은 BindingMode.OneWay로 설정됩니다.When used in BindableProperty declaration, defaults to BindingMode.OneWay.

OneTime 4

바인딩 컨텍스트가 변경될 때만 바인딩이 적용되고 값은 INotifyPropertyChanged를 사용하여 변경 내용을 모니터링할 수 없음을 나타냅니다.Indicates that the binding will be applied only when the binding context changes and the value will not be monitored for changes with INotifyPropertyChanged.

OneWay 2

바인딩이 원본(일반적으로 뷰 모델)에서 대상(BindableObject)으로 변경 내용만 전파해야 함을 나타냅니다.Indicates that the binding should only propagate changes from source (usually the View Model) to target (the BindableObject). 이는 대부분의 BindableProperty 값에 대한 기본 모드입니다.This is the default mode for most BindableProperty values.

OneWayToSource 3

바인딩이 대상(BindableObject)에서 원본(일반적으로 뷰 모델)으로 변경 내용만 전파해야 함을 나타냅니다.Indicates that the binding should only propagate changes from target (the BindableObject) to source (usually the View Model). 이는 주로 읽기 전용 BindableProperty 값에 사용됩니다.This is mainly used for read-only BindableProperty values.

TwoWay 1

바인딩이 원본(일반적으로 뷰 모델)에서 대상(BindableObject)으로 변경 내용을 양방향으로 전파해야 함을 나타냅니다.Indicates that the binding should propagates changes from source (usually the View Model) to target (the BindableObject) in both directions.

설명

다음 예제에서는 몇 가지 BindingMode 사용 사례를 보여 줍니다.The following examples shows some BindingMode use cases.


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 "John Doe"
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"

적용 대상