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.
BindingGroupName: uma seqüência de caracteres que identifica um grupo de ligação possíveis. Este é um conceito de ligação relativamente avançada; Consulte a página de referência para BindingGroupName.
BindsDirectlyToSource: Booleana, pode ser uma true ou false. The default is false.
Converter: pode ser definido como um bindProp=value seqüência na expressão, mas para isso requer uma referência de objeto para o valor, como um Extensão de marcação StaticResource. Nesse caso, o valor é uma instância da classe de uma conversor personalizado.
ConverterCulture: pode ser definida na expressão como um identificador padrões; Consulte o tópico de referência ConverterCulture.
ConverterParameter: pode ser definido como um bindProp=value seqüência na expressão, mas isso depende do tipo de parâmetro sendo passado. Se passar um tipo de referência para o valor, esse uso requer uma referência de objeto como, por exemplo, uma aninhada Extensão de marcação StaticResource.
ElementName: mutuamente versus RelativeSource e Source; cada uma dessas propriedades de vinculação representa uma metodologia de ligação específica. See Revisão de Associação de Dados.
FallbackValue: pode ser definido como um bindProp=value seqüência na expressão, mas isso depende do tipo do valor que está sendo passado. Se passar de um tipo de referência, requer uma referência de objeto como, por exemplo, uma aninhada Extensão de marcação StaticResource.
IsAsync: Booleana, pode ser uma true ou false. The default is false.
Mode: valor é um nome de constante da BindingMode enumeração. For example, {Binding Mode=OneWay}.
NotifyOnSourceUpdated: Booleana, pode ser uma true ou false. The default is false.
NotifyOnTargetUpdated: Booleana, pode ser uma true ou false. The default is false.
NotifyOnValidationError: Booleana, pode ser uma true ou false. The default is false.
Path: uma seqüência de caracteres que descreve um caminho em um objeto de dados ou um modelo de objeto geral. O formato fornece vários diferentes convenções para percorrer um modelo de objeto não pode ser adequadamente descrito neste tópico. See Sintaxe de um PropertyPath XAML.
RelativeSource: mutuamente versus com ElementName e Source; cada uma dessas propriedades de vinculação representa uma metodologia de ligação específica. See Revisão de Associação de Dados. Requer um aninhadas MarkupExtension do RelativeSource uso para especificar o valor.
Source: mutuamente versus RelativeSource e ElementName; cada uma dessas propriedades de vinculação representa uma metodologia de ligação específica. See Revisão de Associação de Dados. Requer o uso da extensão aninhados, normalmente um Extensão de marcação StaticResource que se refere a uma fonte de dados de objeto de um dicionário de recurso com chave.
StringFormat: uma seqüência de caracteres que descreve uma convenção de formato de seqüência de caracteres para os dados acoplados. Este é um conceito de ligação relativamente avançada; Consulte a página de referência para StringFormat.
TargetNullValue: pode ser definido como um bindProp=value seqüência na expressão, mas isso depende do tipo de parâmetro sendo passado. Se passar de um tipo de referência para o valor, requer uma referência de objeto como, por exemplo, uma aninhada Extensão de marcação StaticResource.
UpdateSourceTrigger: valor é um nome de constante da UpdateSourceTrigger enumeração. For example, {Binding UpdateSourceTrigger=LostFocus}. Controles específicos potencialmente têm valores de diferentes do padrão para essa propriedade de vinculação. See UpdateSourceTrigger.
ValidatesOnDataErrors: Booleana, pode ser uma true ou false. The default is false. Consulte comentários.
ValidatesOnExceptions: Booleana, pode ser uma true ou false. The default is false. Consulte comentários.
XPath: uma seqüência de caracteres que descreve um caminho para o XMLDOM de uma fonte de dados XML. See Como: Bind to XML Data Using an XMLDataProvider and XPath Queries.
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.
Comentários
Importante |
---|
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.