Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você 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 modelo.
Uso do atributo XAML
<object property="{TemplateBinding sourceProperty}" ... />
Uso do atributo 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 definida na sintaxe de atribuição. |
sourceProperty |
Outra propriedade de dependência que existe no tipo que está sendo modelado, especificada por sua DependencyProperty.Name. - ou - Um nome de propriedade "pontilhado para baixo" definido por um tipo diferente do tipo de destino que está sendo modelo. Na verdade, isso é um PropertyPath. Consulte a sintaxe XAML do PropertyPath. |
Observações
A 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}. A TemplateBinding é sempre uma associação unidirecional, mesmo que as propriedades por padrão utilizem associação bidirecional. Ambas as propriedades envolvidas devem ser propriedades de dependência. Para obter a associação bidirecional para um pai modelo, use a seguinte instrução {Binding RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay, Path=MyDependencyProperty}de associação.
RelativeSource é outra extensão de marcação que às vezes é usada em conjunto com ou em vez de TemplateBinding para realizar a vinculação relativa de propriedades dentro de um modelo.
Descrever modelos de controle como um conceito não é abordado aqui; para obter mais informações, consulte Estilos de controle e modelos.
A sintaxe do 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 TemplateBindingExtension subjacente.
A sintaxe do elemento de objeto é possível, mas não é mostrada porque não tem nenhum aplicativo realista.
TemplateBinding é usado para preencher valores em setters, empregando expressões avaliadas, e utilizar a sintaxe do elemento objeto para TemplateBinding tornar a sintaxe do elemento de propriedade para <Setter.Property> desnecessariamente prolixa.
TemplateBinding também pode ser usado em um atributo detalhado que especifica a propriedade Property como sendo o par propriedade=valor:
<object property="{TemplateBinding Property=sourceProperty}" ... />
O uso detalhado geralmente é útil para as extensões que têm mais de uma propriedade configurável, ou caso algumas propriedades sejam opcionais. Como TemplateBinding tem apenas uma propriedade configurável, a qual é obrigatória, esse uso verboso não é típico.
Na implementação do processador XAML do WPF, a manipulação dessa extensão de marcação é definida pela classe TemplateBindingExtension.
TemplateBinding é uma extensão da marcação. As extensões de marcação normalmente são implementadas quando há um requisito para escapar de valores de atributo que não sejam valores literais ou nomes de manipulador, e o requisito é mais global do que apenas colocar conversores de tipo em determinados 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 um processador XAML reconhece que uma extensão de marcação deve processar o atributo. Para obter mais informações, consulte Extensões de marcação e XAML do WPF.
Consulte também
- Style
- ControlTemplate
- Estilo e Templatização
- XAML no WPF
- Extensões de marcação e XAML do WPF
- RelativeSource MarkupExtension
- de extensão de marcação de associação
.NET Desktop feedback