Extensión de marcado TemplateBindingTemplateBinding Markup Extension

Vincula el valor de una propiedad de una plantilla de control para que sea el valor de otra propiedad del control con plantilla.Links the value of a property in a control template to be the value of another property on the templated control.

Uso de atributos XAMLXAML Attribute Usage

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

Uso de atributos XAML (para la propiedad Setter de una plantilla o estilo)XAML Attribute Usage (for Setter property in template or style)

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

Valores XAMLXAML Values

propertyName Propiedad DependencyProperty.Name que se va establecer en la sintaxis del establecedor.DependencyProperty.Name of the property being set in the setter syntax.
sourceProperty Otra propiedad de dependencia existente en el tipo con plantilla, especificada por el valor de DependencyProperty.Name.Another dependency property that exists on the type being templated, specified by its DependencyProperty.Name.

O bien- or -

Nombre de propiedad "relacionada" que se define por un tipo diferente del tipo de destino que se va a convertir en un tipo con plantilla.A "dotted-down" property name that is defined by a different type than the target type being templated. En realidad, se trata de un objeto PropertyPath.This is actually a PropertyPath. Consulte sintaxis XAML de PropertyPath.See PropertyPath XAML Syntax.

ComentariosRemarks

Un TemplateBinding es una forma optimizada de un enlace para escenarios de plantilla, similar a un Binding construido con {Binding RelativeSource={RelativeSource TemplatedParent}}.A TemplateBinding is an optimized form of a Binding for template scenarios, analogous to a Binding constructed with {Binding RelativeSource={RelativeSource TemplatedParent}}. TemplateBinding siempre es un enlace unidireccional, aunque las propiedades implicadas establezcan por defecto un enlace bidireccional.A TemplateBinding is always a one-way binding, even if properties involved default to two-way binding. Ambas propiedades implicadas deben ser propiedades de dependencia.Both properties involved must be dependency properties. Para lograr el enlace bidireccional a un elemento primario con plantilla, use en su lugar la siguiente instrucción de enlace {Binding RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay, Path=MyDependencyProperty}.In order to achieve two-way binding to a templated parent use the following binding statement instead {Binding RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay, Path=MyDependencyProperty}.

RelativeSource es otra extensión de marcado que a veces se usa junto con o en lugar de TemplateBinding para realizar un enlace de propiedad relativo dentro de una plantilla.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.

La descripción de las plantillas de control como concepto no se trata aquí. para obtener más información, vea estilos y plantillas de control.Describing control templates as a concept is not covered here; for more information, see Control Styles and Templates.

La sintaxis de atributo es la que se usa normalmente con esta extensión de marcado.Attribute syntax is the most common syntax used with this markup extension. 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.The string token provided after the TemplateBinding identifier string is assigned as the Property value of the underlying TemplateBindingExtension extension class.

La sintaxis de elementos de objeto es posible, pero no se muestra porque no tiene ninguna aplicación en el mundo real.Object element syntax is possible, but it is not shown because it has no realistic application. 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 is used to fill values within setters, using evaluated expressions, and using object element syntax for TemplateBinding to fill <Setter.Property> property element syntax is unnecessarily verbose.

TemplateBinding también se puede utilizar en el uso de atributos detallado que especifica la propiedad Property como un par de propiedad=valor:TemplateBinding can also be used in a verbose attribute usage that specifies the Property property as a property=value pair:

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

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.The verbose usage is often useful for extensions that have more than one settable property, or if some properties are optional. Dado que TemplateBinding tiene una sola propiedad configurable, que es obligatoria, este uso detallado no es habitual.Because TemplateBinding has only one settable property, which is required, this verbose usage is not typical.

En la implementación del procesador de WPFWPF XAML, el control de esta extensión de marcado se define mediante la clase TemplateBindingExtension.In the WPFWPF XAML processor implementation, the handling for this markup extension is defined by the TemplateBindingExtension class.

TemplateBinding es una extensión de marcado.TemplateBinding is a markup extension. 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.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 las extensiones de marcado de XAML usan los caracteres { y } en su sintaxis de atributo, que es la Convención por la que un procesador XAML reconoce que una extensión de marcado debe procesar el atributo.All markup extensions in XAML use the { and } characters in their attribute syntax, which is the convention by which a XAML processor recognizes that a markup extension must process the attribute. Para más información, vea Extensiones de marcado y XAML de WPF.For more information, see Markup Extensions and WPF XAML.

Vea tambiénSee also