BindingMode Énumération
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Direction de la propagation des modifications pour les liaisons.
public enum BindingMode
type BindingMode =
- Héritage
-
System.EnumBindingMode
Champs
Default | 0 | Dans les liaisons, indique que la liaison doit utiliser le DefaultBindingMode. Dans la déclaration BindableProperty, sa valeur par défaut est BindingMode.OneWay. |
OneTime | 4 | Indique que la liaison sera appliquée uniquement lorsque le contexte de liaison change et que la valeur ne sera pas surveillée pour les modifications avec |
OneWay | 2 | Indique que la liaison doit uniquement propager les modifications depuis la source (généralement le modèle de vue) vers la cible (BindableObject). Il s’agit du mode par défaut pour la plupart des valeurs BindableProperty. |
OneWayToSource | 3 | Indique que la liaison doit uniquement propager les modifications depuis la cible (BindableObject) vers la source (généralement le modèle de vue). Principalement utilisé pour les valeurs BindableProperty en lecture seule. |
TwoWay | 1 | Indique que la liaison doit propager les modifications depuis la source (généralement le modèle de vue) vers la cible (BindableObject) dans les deux directions. |
Remarques
Les exemples suivants illustrent certains cas d’usage 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"