BindingMode Enumeração
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
A direção da propagação de alterações para associações.
public enum class BindingMode
public enum BindingMode
type BindingMode =
Public Enum BindingMode
- Herança
-
BindingMode
Campos
Nome | Valor | Description |
---|---|---|
Default | 0 | Quando usado em Associações, indica que a Associação deve usar o DefaultBindingMode. Quando usado em declaração de BindableProperty, usa como padrão BindingMode.OneWay. |
TwoWay | 1 | Indica que a associação deve propagar alterações da origem (geralmente, o Modelo de Exibição) para o destino (o BindableObject) em ambas as direções. |
OneWay | 2 | Indica que a associação deve apenas propagar alterações da origem (geralmente, o Modelo de Exibição) para o destino (o BindableObject). Esse é o modo padrão para a maioria dos valores de BindableProperty. |
OneWayToSource | 3 | Indica que a associação deve propagar apenas alterações do destino (o BindableObject) para a origem (geralmente, o Modelo de Exibição). Isso é usado principalmente para os valores de BindableProperty somente leitura. |
OneTime | 4 | Indica que a associação será aplicada somente quando o contexto de associação for alterado e o valor não será monitorado para alterações com |
Comentários
Os exemplos a seguir mostram alguns casos de uso do 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"