Bagikan melalui


BindingMode Enum

Definisi

Arah perubahan penyebaran untuk pengikatan.

public enum BindingMode
type BindingMode = 
Warisan
System.Enum
BindingMode

Bidang

Default 0

Saat digunakan dalam Pengikatan, menunjukkan bahwa Pengikatan harus menggunakan DefaultBindingMode. Saat digunakan dalam deklarasi BindableProperty, default ke BindingMode.OneWay.

OneTime 4

Menunjukkan bahwa pengikatan hanya akan diterapkan ketika konteks pengikatan berubah dan nilai tidak akan dipantau untuk perubahan dengan INotifyPropertyChanged.

OneWay 2

Menunjukkan bahwa pengikatan hanya boleh menyebarluaskan perubahan dari sumber (biasanya Model Tampilan) ke target (BindableObject). Ini adalah mode default untuk sebagian besar nilai BindableProperty.

OneWayToSource 3

Menunjukkan bahwa pengikatan hanya boleh menyebarluaskan perubahan dari target (BindableObject) ke sumber (biasanya Model Tampilan). Ini terutama digunakan untuk nilai BindableProperty baca-saja.

TwoWay 1

Menunjukkan bahwa pengikatan harus menyebarkan perubahan dari sumber (biasanya Model Tampilan) ke target (BindableObject) di kedua arah.

Keterangan

Contoh berikut menunjukkan beberapa kasus penggunaan 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"

Berlaku untuk