BindingMode Sabit listesi
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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 |
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"