BindingMode Sabit listesi

Tanım

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

public enum class BindingMode
public enum BindingMode
type BindingMode = 
Public Enum BindingMode
Devralma
BindingMode

Alanlar

Name Değer Description
Default 0

Bağlamalar'da kullanıldığında, Bağlama'nın öğesini DefaultBindingModekullanması gerektiğini gösterir. BindableProperty bildiriminde kullanıldığında, varsayılan olarak BindingMode.OneWay olur.

TwoWay 1

Bağlamanın değişiklikleri kaynaktan (genellikle Modeli Görüntüle) hedefe (BindableObject) her iki yönde de yayması gerektiğ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 temel olarak salt okunur BindableProperty değerleri için kullanılı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 izlenmediğ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