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