Share via


Ligação de marcação de extensão

Adia um valor de propriedade para ser um valor data-bound, criando um objeto de expressão intermediário e interpretando o contexto de dados que se aplica ao elemento no tempo de execução.

Uso de atributos XAML

<object property="{Binding}" .../>

- ou -

<object property="{Binding  bindingPropertyName1=value,
  bindingPropertyName2=value,
  bindingPropertyNameN=value}" ...
/>

Uso do elemento Object em XAML

<object>
  <object.property>
    <Binding/>
  </object.property>
</object>

- ou -

<object>
  <object.property>
    <Binding      bindingPropertyName1="value"
      bindingPropertyName2="value"
      bindingPropertyNameN="value"
    />
  </object.property>
</object>

Qualquer uma das propriedades listadas abaixo, que poderiam ser definidas como um par propriedade = valor na sintaxe do exemplo de atributo, em vez disso podem ser definidas como atributos do elemento Binding conforme definido na sintaxe de elemento de objeto.

Valores de XAML

bindingPropertyName#

O Name da propriedade Binding a ser definido. Nem todas as propriedades Binding podem ser definidas com a extensão de ligação, e algumas propriedades são configuráveis somente pela utilização de outras extensões de marcação mais aninhadas. Consulte a seção "Vinculando propriedades que podem ser definidas com a extensão de ligação".

value

O valor a ser definido para a propriedade. A manipulação de valor do atributo é basicamente específico para o tipo e lógica de bindingPropertyName sendo definido.

Consulte a seção "Vinculando propriedades que podem ser definidas com a extensão de ligação".

A sintaxe mostrada neste tópico usa a aproximação bindingPropertyName=value genérica, porque há muitas propriedades de Leitura/Gravação de BindingBase ou Binding que podem ser definidas por meio de sintaxe da extensão de marcação Binding. Elas podem ser definidas em qualquer ordem. Basicamente, você pode definir zero ou mais das propriedades na lista abaixo, usando pares propriedade = valor separados por vírgulas.

Vários desses valores de propriedade exigem tipos de objeto que não suportam uma conversão de tipo nativo e, portanto, exigir mais usos da marcação de extensão sejam conjunto em XAML sistema autônomo um valor de atributo. Verifique a seção uso do atributo XAML a referência para cada propriedade determinar a sintaxe do atributo adequado.

A seguir estão propriedades de Binding que não podem ser definidas usando a extensão de marcação Binding.

Comentários

Os espaços reservados bindingPropertyName fornecidos aqui correspondem aos nomes de algumas das propriedades configuráveis declaradas da classe Binding, e os valores string são equivalentes a como os valores de propriedade poderiam ser definidos como um atributo XAML em um Binding declarado como um elemento XAML.

Descrição de associação de dados como um conceito não é abordado aqui; consulte Revisão de Associação de Dados para conceitos e Resumo de Declaração de Associações para obter mais detalhes sobre sintaxe alternativa. Discussão de sintaxe alternativa inclui como criar ligações equivalentes por um número de sintaxes possíveis, como propriedades de atributo de um elemento de objeto Binding em XAML, sintaxe do elemento de propriedade de um Binding, ou criação procedural de uma ligação usando SetBinding ou o construtor Binding.

Observação importanteObservação importante:

Em termos de propriedade de dependência precedência , uma expressão de vinculação é equivalente a definido localmente valor. Se você conjunto um valor de local para uma propriedade que já havia uma Binding expressão, o Binding é completamente removido. Para obter detalhes, consulte:Precedência de valores de propriedade de dependência.

ObservaçãoObservação:

MultiBinding e PriorityBinding não suportam uma sintaxe de extensão XAML (apesar de compartilhar a mesma classe BindingBase, que realmente implementa o comportamento XAML para Binding).

Binding é uma extensão de marcação. Extensões de marcação são tipicamente implementadas quando existe um requisito de escapar valores de atributo para serem diferentes de valores literais ou nomes de manipuladores, e o requisito é mais global do que simplesmente colocar conversores de tipo em certos tipos ou propriedades. Todas as extensões de marcação no XAML usam os caracteres { e } em sua sintaxe de atributo, que é a convenção pela qual o processador XAML reconhece que uma extensão de markup precisa processar o atributo. Para obter mais informações, consulte Extensão de Marcação e XAML.Binding é um extensão de marcação incomum em que a classe Binding que implementa a funcionalidade de extensão também implementa vários outros métodos e propriedades. Esses outros membros não são diretamente um requisito para funcionalidade de extensão de marcação. Pretende-se que os membros façam Binding uma classe mais versátil e independente que pode solucionar muitos cenários de associação de dados, além de funcionar como uma extensão de marcação XAML.

Consulte também

Conceitos

Revisão de Associação de Dados

Resumo de Declaração de Associações

XAML Overview

Extensão de Marcação e XAML

Referência

Binding