BindingMode Enum
Definicja
Ważny
Niektóre informacje dotyczą produktów przedpremierowych, które mogą zostać znacznie zmodyfikowane przed premierą. Microsoft nie udziela żadnych gwarancji, ani wyraźnych, ani domniemanych, dotyczących informacji podanych tutaj.
Określa kierunek przepływu danych w powiązaniu.
public enum class BindingMode
public enum BindingMode
type BindingMode =
Public Enum BindingMode
- Dziedziczenie
-
BindingMode
Pola
| Nazwa | Wartość | Opis |
|---|---|---|
| Default | 0 | Używa domyślnego trybu powiązania dla właściwości docelowej. |
| TwoWay | 1 | Aktualizuje zarówno element docelowy, jak i źródło po zmianie. |
| OneWay | 2 | Aktualizuje element docelowy po zmianie źródła. |
| OneWayToSource | 3 | Aktualizuje źródło, gdy element docelowy ulegnie zmianie. |
| OneTime | 4 | Aktualizuje element docelowy tylko raz po utworzeniu powiązania. |
Uwagi
W poniższych przykładach przedstawiono niektóre przypadki użycia 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"