Extensión de marcado TemplateBinding

Vincula el valor de una propiedad de una plantilla de control para que sea el valor de una propiedad del control con plantilla.

Uso de atributos XAML

<object property="{TemplateBinding targetProperty}" .../>

Uso de atributos XAML (para la propiedad Setter de una plantilla o estilo)

<Setter Property="propertyName" Value="{TemplateBinding targetProperty}" .../>

Valores XAML

propertyName

Propiedad DependencyProperty.Name de la propiedad que se establece en la sintaxis del establecedor.

targetProperty

Propiedad de dependencia que existe en el tipo con plantilla, especificada por el valor de DependencyProperty.Name.

O bien,

Un nombre de propiedad "relacionada" que se define por un tipo diferente que el tipo de destino de la plantilla. En realidad, se trata de un objeto PropertyPath. Vea Sintaxis de PropertyPath de XAML.

Comentarios

TemplateBinding es una forma optimizada de enlace para los escenarios de plantilla, análogo a la instrucción Binding construida con {Binding RelativeSource={RelativeSource TemplatedParent}}.

RelativeSource es otra extensión de marcado que se utiliza a veces en combinación con TemplateBinding o en su lugar para realizar enlaces de propiedades relativos dentro de una plantilla.

La descripción del concepto de las plantillas de control no se incluye aquí; para obtener más información vea Estilos y plantillas de Control.

La sintaxis de atributo es la que se usa más a menudo con esta extensión de marcado. El token de cadena que se proporciona después de la cadena de identificador TemplateBinding se asigna como valor de Property de la clase de extensión TemplateBindingExtension subyacente.

La sintaxis de elementos de objeto es posible, pero no se muestra porque no tiene ninguna aplicación realista. TemplateBinding se emplea para rellenar los valores dentro de los establecedores, mediante expresiones evaluadas, y el uso de la sintaxis de elementos de objeto para que TemplateBinding rellene la sintaxis de elementos de propiedad de <Setter.Property> aplica un grado de detalle innecesario.

TemplateBinding también se puede utilizar en el uso de atributos detallado que especifica la propiedad Property como un par de propiedad=valor:

<object property="{TemplateBinding Property=targetProperty}" .../>

El uso detallado suele ser útil para las extensiones que tienen más de una propiedad que se puede configurar, o en aquellos casos en que algunas propiedades son opcionales. Dado que TemplateBinding tiene una sola propiedad configurable, que es obligatoria, este uso detallado no es habitual.

La clase TemplateBindingExtension define el control para esta extensión de marcado en la implementación del procesador XAML de WPF.

TemplateBinding es una extensión de marcado. Las extensiones de marcado se suelen implementar cuando se necesita que los valores de los atributos de escape no sean valores literales o nombres de controladores, y este requisito es de índole más global que limitarse a colocar los convertidores de tipos en determinados tipos o propiedades. Todas las extensiones de marcado de XAML utilizan los caracteres { y } en su sintaxis de atributo, que es la convención que permite que un procesador de XAML reconozca que el atributo se debe procesar mediante una extensión de marcado. Para obtener más información, vea Extensiones de marcado y XAML de WPF.

Vea también

Referencia

Extensión de marcado RelativeSource

Enlazar extensión de marcado

Style

ControlTemplate

Conceptos

Aplicar estilos y plantillas

Información general sobre XAML (WPF)

Extensiones de marcado y XAML de WPF