Extensão de linguagem de marcação TemplateBinding
Vincula o valor de uma propriedade em um modelo de controle como o valor de uma propriedade no controle modelado.
XAML Attribute Usage
<object property="{TemplateBinding targetProperty}" .../>
XAML Attribute Usage (for Setter property in template or style)
<Setter Property="propertyName" Value="{TemplateBinding targetProperty}" .../>
XAML Values
propertyName |
DependencyProperty.Name of the property being set in the setter syntax. |
targetProperty |
A dependency property that exists on the type being templated, specified by its DependencyProperty.Name. - or - A "dotted-down" property name that is defined by a different type than the target type being templated. This is actually a PropertyPath. See Sintaxe de um PropertyPath XAML. |
Comentários
A TemplateBinding é uma forma otimizada de um de ligação para cenários de modelo, análogos a uma Binding construído com {Binding RelativeSource={RelativeSource TemplatedParent}}.
RelativeSource is another markup extension that is sometimes used in conjunction with or instead of TemplateBinding in order to perform relative property binding within a template.
Describing control templates as a concept is not covered here; for more information, see Modelos e estilos de controle.
Attribute syntax is the most common syntax used with this markup extension. The string token provided after the TemplateBinding identifier string is assigned as the Property value of the underlying TemplateBindingExtension extension class.
Sintaxe de elemento de objeto é possível, mas não é mostrado porque não tem nenhum aplicativo realista. TemplateBindingé usada para preencher as expressões de valores dentro de setters, usando avaliadas e usando a sintaxe de elemento de objeto para TemplateBinding para preencher <Setter.Property> sintaxe de elemento de propriedade é desnecessariamente verbose.
TemplateBinding can also be used in a verbose attribute usage that specifies the Property property as a property=value pair:
<object property="{TemplateBinding Property=targetProperty}" .../>
The verbose usage is often useful for extensions that have more than one settable property, or if some properties are optional. Because TemplateBinding has only one settable property, which is required, this verbose usage is not typical.
No WPF implementação do processador XAML, o tratamento para a extensão de marcação é definido pelo TemplateBindingExtension classe.
TemplateBinding is a markup extension. Markup extensions are typically implemented when there is a requirement to escape attribute values to be other than literal values or handler names, and the requirement is more global than just putting type converters on certain types or properties. 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 atributo. For more information, see As extensões de marcação e o WPF XAML.
Consulte também
Referência
MarkupExtension do RelativeSource
Ligação de marcação de extensão