Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Vincula o valor de uma propriedade em um modelo de controle para ser o valor de outra propriedade no controle modelado.
Uso de atributos XAML
<object property="{TemplateBinding sourceProperty}" ... />
Uso de atributos XAML (para a propriedade 'Setter' no modelo ou estilo)
<Setter Property="propertyName" Value="{TemplateBinding sourceProperty}" ... />
Valores XAML
| Valor | Descrição |
|---|---|
propertyName |
DependencyProperty.Name da propriedade que está a ser definida na sintaxe setter. |
sourceProperty |
Outra propriedade de dependência que existe no tipo que está sendo modelado, especificada por seu DependencyProperty.Name. - ou - Um nome de propriedade "pontilhado" que é definido por um tipo diferente do tipo de destino que está sendo modelado. Isto é, na verdade, um PropertyPath. Consulte a sintaxe XAML de PropertyPath indicada em . |
Observações
Um TemplateBinding é uma forma otimizada de um Binding para cenários de modelo, análogo a um Binding construído com {Binding RelativeSource={RelativeSource TemplatedParent}, Mode=OneWay}. Uma TemplateBinding é sempre uma ligação unidirecional, mesmo que as propriedades envolvidas tenham como padrão a ligação bidirecional. Ambas as propriedades envolvidas devem ser propriedades de dependência. Para obter a ligação bidirecional a um pai modelado, use a seguinte instrução de vinculação em vez {Binding RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay, Path=MyDependencyProperty}.
RelativeSource é outra extensão de marcação que às vezes é usada em conjunto com ou em vez de TemplateBinding para executar a vinculação de propriedade relativa dentro de um modelo.
A descrição de modelos de controle como um conceito não é abordada aqui; Para obter mais informações, consulte Estilos e modelos de controle.
A sintaxe de atributo é a sintaxe mais comum usada com essa extensão de marcação. O token de cadeia de caracteres fornecido após o identificador TemplateBinding é atribuído como o valor Property da classe de extensão subjacente TemplateBindingExtension.
A sintaxe do elemento objeto é possível, mas não é mostrada porque não tem aplicação realista.
TemplateBinding é usado para preencher valores dentro de setters, usando expressões avaliadas e usando sintaxe de elemento de objeto para TemplateBinding para preencher <Setter.Property> sintaxe de elemento de propriedade é desnecessariamente detalhada.
TemplateBinding também pode ser usado num uso de atributo verboso que especifica a propriedade Property como par propriedade=valor.
<object property="{TemplateBinding Property=sourceProperty}" ... />
O uso detalhado geralmente é útil para extensões que têm mais de uma propriedade configurável ou se algumas dessas propriedades são opcionais. Como o TemplateBinding tem apenas uma propriedade ajustável, que é necessária, esse uso verboso não é típico.
Na implementação do processador WPF XAML, a manipulação para essa extensão de marcação é definida pela classe TemplateBindingExtension.
TemplateBinding é uma extensão de linguagem de marcação. As extensões de marcação são geralmente implementadas quando há um requisito para evitar que os valores de atributos sejam diferentes dos valores literais ou nomes de funções manipuladoras, e o requisito é mais abrangente do que simplesmente colocar conversores de tipo em certos tipos ou propriedades. Todas as extensões de marcação em XAML usam os caracteres { e } em sua sintaxe de atributo, que é a convenção pela qual um processador XAML reconhece que uma extensão de marcação deve processar o atributo. Para obter mais informações, consulte Markup Extensions e WPF XAML.
Ver também
.NET Desktop feedback