BindingMode Sabit listesi

Tanım

Bağlamalar için değişiklik yayma yönü.

public enum BindingMode
type BindingMode = 
Devralma
BindingMode

Alanlar

Default 0

Bağlamalarda kullanıldığında, bağlamanın öğesini kullanması gerektiğini belirtir DefaultBindingMode . Bindadbleproperty bildiriminde kullanıldığında varsayılan olarak BindingMode. OneWay olur.

OneTime 4

Bağlamanın yalnızca bağlama bağlamı değiştiği zaman ve değerin INotifyPropertyChangedile değişiklikler için izlenmeyeceğini belirtir.

OneWay 2

Bağlamanın yalnızca kaynaktaki değişiklikleri (genellikle görünüm modeli) hedefe (Bindadbleobject) yaydığını gösterir. Bu, çoğu Bindavbleproperty değeri için varsayılan moddur.

OneWayToSource 3

Bağlamanın yalnızca hedeften (Bindavbleobject) yapılan değişiklikleri kaynağa (genellikle görünüm modeli) yaydığını gösterir. Bu, genellikle salt okunurdur Bindadbleproperty değerleri için kullanılır.

TwoWay 1

Bağlamanın, değişiklikleri kaynaktaki (genellikle görünüm modeli) hedeften (Bindadbleobject) her iki yönde yaymalıdır.

Açıklamalar

Aşağıdaki örneklerde bazı BindingMode kullanım durumları gösterilmektedir.

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"

Şunlara uygulanır