Share via


BindingMode Sabit listesi

Tanım

Bağlamalar için yayılmayı değiştirme yönü.

public enum BindingMode
type BindingMode = 
Devralma
System.Enum
BindingMode

Alanlar

Default 0

Bağlamalar'da kullanıldığında Bağlama'nın kullanması DefaultBindingModegerektiğini belirtir. BindableProperty bildiriminde kullanıldığında, varsayılan olarak BindingMode.OneWay olarak ayarlanır.

OneTime 4

Bağlamanın yalnızca bağlama bağlamı değiştiğinde uygulanacağını ve değerin ile INotifyPropertyChangedyapılan değişiklikler için izlenmeyeceğini gösterir.

OneWay 2

Bağlamanın yalnızca kaynaktan (genellikle Modeli Görüntüle) hedefe (BindableObject) değişiklikleri yayması gerektiğini gösterir. Bu, çoğu BindableProperty değeri için varsayılan moddur.

OneWayToSource 3

Bağlamanın değişiklikleri yalnızca hedeften (BindableObject) kaynağa (genellikle Modeli Görüntüle) yayması gerektiğini gösterir. Bu genellikle salt okunur BindableProperty değerleri için kullanılır.

TwoWay 1

Bağlamanın değişiklikleri kaynaktan (genellikle Modeli Görüntüle) hedefe (BindableObject) her iki yönde yayması gerektiğini gösterir.

Açıklamalar

Aşağıdaki örneklerde bazı BindingMode kullanım örnekleri 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