Compartilhar via


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

Adia a um valor de propriedade para ser um valor de data-bound, criando um objeto de expressão intermediários e Interpretando o contexto de dados que se aplica para o elemento e sua ligação em tempo de execução.

O uso de expressões de vinculação.

<object property="{Binding}" .../>
-or-
<object property="{Binding bindProp1=value1[, bindPropN=valueN]*}" ...
/>
-or-
<object property="{Binding path}" .../>
-or
<object property="{Binding path[, bindPropN=valueN]*}" .../>

Observações da sintaxe

Nessas sintaxes, o [] e * são literais. Eles são parte de uma notação para indicar que zero ou mais bindProp=valor pares podem ser usados, com um , separador entre eles e anterior bindProp=valor pares.

Qualquer uma das propriedades listadas na "Vinculação propriedades que pode ser definida com a vinculação extensão" seção puderam ser definida em vez disso, usando os atributos de um Binding elemento de objeto. No entanto, isso não é realmente o uso de extensão de marcação de Binding, é apenas o processamento XAML geral de atributos que definir as propriedades do CLR Binding classe. Em outras palavras, <Binding bindProp1="valor1"[ bindPropN="valueN"]*/> é uma sintaxe equivalente para atributos de Binding objeto o uso do elemento em vez de um Binding uso de expressão. Para saber mais sobre o uso do atributo XAML de propriedades específicas de Binding, consulte o "uso do atributo XAML" seção da propriedade relevante do Binding na.NET Framework Class Library.

XAML Values

bindProp1, bindPropN

O nome da Binding ou BindingBase propriedade para o conjunto. Nem todos os Binding propriedades podem ser definidas com o Binding extensão e algumas propriedades são definíveis dentro de um Binding expressão usando somente ainda mais a marcação aninhada extensões. See "Binding Properties That Can Be Set with the Binding Extension" section.

value1, valueN

The value to set the property to. O tratamento do valor do atributo é específico, por fim, o tipo e a lógica das específicas Binding propriedade que está sendo definido.

path

A seqüência de caracteres de caminho que define o implícito Binding.Path propriedade. Consulte também Sintaxe de um PropertyPath XAML.

Não qualificado {Binding}

O {Binding} uso mostrado em "uso de expressão de vinculação" cria um Binding o objeto com valores padrão, que inclui uma inicial Binding.Path de null. Isso ainda é útil em muitos cenários, pois criaram Binding pode confiar nas propriedades de vinculação de dados importantes, como Binding.Path e Binding.Source sendo definido no contexto de dados em tempo de execução. Para obter mais informações sobre o conceito de contexto de dados, consulte (WPF) de vinculação de dados.

Caminho implícito

O Binding usa a extensão de marcação Binding.Path como um conceitual "propriedade" padrão", onde Path= não precisam aparecer na expressão. Se você especificar um Binding a expressão com um caminho implícito, o caminho implícito deve aparecer primeiro na expressão, antes de qualquer outro, para bindProp=value pares onde o Binding propriedade for especificada pelo nome. For example: {Binding PathString}, onde PathString é uma seqüência que é avaliada como o valor de Binding.Path na Binding criado pelo uso de extensão de marcação. Você pode acrescentar um caminho implícito com outras propriedades nomeadas após o separador de vírgula, por exemplo, {Binding LastName, Mode=TwoWay}.

Binding Properties That Can Be Set with the Binding Extension

A sintaxe mostrada neste tópico usa a classe genérica bindProp=value aproximação, porque há muitas propriedades de leitura/gravação de BindingBase ou Binding que podem ser definidas através do Binding a extensão de marcação / sintaxe de expressão. Eles podem ser definidos em qualquer ordem, com exceção de um implícito Binding.Path. (Você tem a opção para especificar explicitamente Path=, caso em que ela pode ser definida em qualquer ordem). Basicamente, você pode definir zero ou mais das propriedades na lista abaixo, usando bindProp=value pares separados por vírgulas.

Vários desses valores de propriedade exigem tipos de objeto que não suportam uma conversão de tipo nativo de uma sintaxe de texto em XAML e, assim, exigem as extensões de marcação para ser definido como um valor de atributo. Verifique a seção de uso do atributo XAML.NET Framework Class Library para cada propriedade para obter mais informações; a seqüência de caracteres que você usar para obter a sintaxe de atributo XAML com ou sem a extensão de marcação mais uso é basicamente o mesmo que o valor especificado em um Binding a expressão, com exceção de que você não coloque aspas ao redor de cada bindProp=value no Binding expressão.

A seguir é propriedades de Binding que não pode ser definida usando o Binding a extensão de marcação /{Binding} formulário de expressão.

  • UpdateSourceExceptionFilter: Esta propriedade espera uma referência a uma implementação de retorno de chamada. Retornos de chamada/métodos diferentes de manipuladores de eventos não pode ser referenciados na sintaxe XAML.

  • ValidationRules: a propriedade tem uma coleção genérica de ValidationRule objetos. Isso pode ser expresso como um elemento de propriedade em um Binding elemento de objeto, mas não tem nenhuma técnica de análise de atributo prontamente disponível para uso em um Binding expressão. Consulte o tópico de referência ValidationRules.

  • XmlNamespaceManager

Comentários

Observação importanteImportante

Em termos de precedência de propriedade de dependência, um Binding expressão é equivalente a definido localmente valor.If you set a local value for a property that previously had a Binding expression, the Binding is completely removed.For details, see Precedência de valores de propriedade de dependência.

Descrevendo a ligação de dados em nível básico não é abordado neste tópico. See Revisão de Associação de Dados.

Observação

MultiBindinge PriorityBinding não oferecem suporte a uma XAML sintaxe de extensão. Em vez disso use elementos de propriedade.Consulte os tópicos de referência para MultiBinding e PriorityBinding.

Valores booleanos para XAML diferenciam maiúsculas de minúsculas. Por exemplo, você poderia especificar um {Binding NotifyOnValidationError=true} ou {Binding NotifyOnValidationError=True}.

Ligações que envolvem a validação de dados geralmente são especificadas por um explícito Binding elemento em vez de como um {Binding ...} a expressão e a configuração ValidatesOnDataErrors ou ValidatesOnExceptions em uma expressão é incomum. Isso ocorre porque a propriedade companion ValidationRules não pode ser prontamente definida no formulário de expressão. For more information, see Como: Implement Binding Validation.

Binding is a markup extension. As extensões de marcação são geralmente implementadas quando houver um requisito para os valores de atributo para ser diferente, por exemplo, valores literais ou manipulador de nomes de escape e o requisito é mais global que os conversores de tipo atribuídos em determinados tipos de ou propriedades. Todas as extensões de marcação no uso do XAML a { e } caracteres em sua sintaxe de atributo, que é a convenção pelo qual um processador XAML reconhece que a extensão de marcação deve processar o conteúdo de seqüência de caracteres. For more information, see As extensões de marcação e o WPF XAML.

Bindingé uma extensão de marcação atípico em que o Binding classe que implementa a funcionalidade de extensão para implementação de XAML do WPF também implementa vários métodos e propriedades que não estão relacionadas ao XAML. Os outros membros são projetados para tornar Binding uma classe mais versátil e independente que possa atender muitos dados vinculação cenários, além de funcionar como uma extensão de marcação XAML.

Consulte também

Referência

Binding

Conceitos

Revisão de Associação de Dados

Visão geral do XAML (WPF)

As extensões de marcação e o WPF XAML