BindingMode BindingMode Enum

Definición

Dirección de la propagación de cambios para enlaces.The direction of changes propagation for bindings.

public enum BindingMode
type BindingMode = 
Herencia
BindingModeBindingMode

Campos

Default Default 0

Cuando se usa en enlaces, indica que el enlace debe utilizar el DefaultBindingMode.When used in Bindings, indicates that the Binding should use the DefaultBindingMode. Cuando se utiliza en la declaración de BindableProperty, se establece de forma predeterminada en BindingMode.OneWay.When used in BindableProperty declaration, defaults to BindingMode.OneWay.

OneTime OneTime 4

Indica que el enlace se aplicará solo cuando el contexto de enlace cambie y el valor no se supervisará en busca de cambios con INotifyPropertyChanged.Indicates that the binding will be applied only when the binding context changes and the value will not be monitored for changes with INotifyPropertyChanged.

OneWay OneWay 2

Indica que el enlace solo debe propagar cambios desde el origen (normalmente, el modelo de vista) al destino (BindableObject).Indicates that the binding should only propagate changes from source (usually the View Model) to target (the BindableObject). Este es el modo predeterminado de la mayoría de los valores de BindableProperty.This is the default mode for most BindableProperty values.

OneWayToSource OneWayToSource 3

Indica que el enlace solo debe propagar cambios desde el destino (BindableObject) al origen (normalmente, el modelo de vista).Indicates that the binding should only propagate changes from target (the BindableObject) to source (usually the View Model). Se usa principalmente en valores de BindableProperty de solo lectura.This is mainly used for read-only BindableProperty values.

TwoWay TwoWay 1

Indica que el enlace debe propagar cambios desde el origen (normalmente, el modelo de vista) al destino (BindableObject), en ambos sentidos.Indicates that the binding should propagates changes from source (usually the View Model) to target (the BindableObject) in both directions.

Comentarios

Los ejemplos siguientes muestran algunos casos de uso BindingMode.The following examples shows some BindingMode use cases.


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 "John Doe"
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"

Se aplica a