BindingMode Enum
Definição
Importante
Alguma informação relaciona-se com produtos pré-lançamento que podem ser substancialmente modificados antes de serem lançados. A Microsoft não oferece garantias, expressas ou implícitas, relativamente à informação aqui fornecida.
Especifica a direção do fluxo de dados numa ligação.
public enum class BindingMode
public enum BindingMode
type BindingMode =
Public Enum BindingMode
- Herança
-
BindingMode
Campos
| Nome | Valor | Descrição |
|---|---|---|
| Default | 0 | Usa o modo de ligação padrão para a propriedade alvo. |
| TwoWay | 1 | Atualiza tanto o destino como a origem quando algum deles muda. |
| OneWay | 2 | Atualiza o alvo quando a fonte muda. |
| OneWayToSource | 3 | Atualiza a fonte quando o destino muda. |
| OneTime | 4 | Atualiza o destino apenas uma vez quando a ligação é criada. |
Observações
Os exemplos seguintes 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"