TemplateBinding, extension de balisageTemplateBinding Markup Extension

Cette extension lie la valeur d'une propriété dans un modèle de contrôle afin de la définir comme valeur d'une autre propriété exposée dans le contrôle basé sur un modèle.Links the value of a property in a control template to be the value of another property on the templated control.

Utilisation d'attributs XAMLXAML Attribute Usage

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

Utilisation d'attributs XAML (pour la propriété de méthode setter dans le modèle ou le style)XAML Attribute Usage (for Setter property in template or style)

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

Valeurs XAMLXAML Values

propertyName DependencyProperty.Name de la propriété définie dans la syntaxe de méthode setter.DependencyProperty.Name of the property being set in the setter syntax.
sourceProperty Autre propriété de dépendance qui existe sur le type basé sur un modèle, spécifiée par DependencyProperty.Name.Another dependency property that exists on the type being templated, specified by its DependencyProperty.Name.

- ou -- or -

Nom de propriété « dotted-down » défini par un autre type que le type de cible basé sur un modèle.A "dotted-down" property name that is defined by a different type than the target type being templated. Il s'agit en réalité d'un PropertyPath.This is actually a PropertyPath. Consultez syntaxe XAML PropertyPath.See PropertyPath XAML Syntax.

Notes Remarks

Un TemplateBinding est une forme optimisée d’une liaison pour les scénarios de modèle, Binding analogue à {Binding RelativeSource={RelativeSource TemplatedParent}, Mode=OneWay}un construit avec.A TemplateBinding is an optimized form of a Binding for template scenarios, analogous to a Binding constructed with {Binding RelativeSource={RelativeSource TemplatedParent}, Mode=OneWay}. TemplateBinding est toujours une liaison unidirectionnelle, même si les propriétés ont comme valeur par défaut des liaisons bidirectionnelles.A TemplateBinding is always a one-way binding, even if properties involved default to two-way binding. Les deux propriétés doivent toutes être des propriétés de dépendance.Both properties involved must be dependency properties. Pour obtenir une liaison bidirectionnelle à un parent basé sur un modèle, utilisez l’instruction de {Binding RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay, Path=MyDependencyProperty}liaison suivante à la place.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 est une autre extension de balisage qui est parfois utilisée conjointement avec ou TemplateBinding au lieu de pour effectuer une liaison de propriété relative dans un modèle.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 description des modèles de contrôle en tant que concept n’est pas abordée ici. Pour plus d’informations, consultez styles et modèles de contrôle.Describing control templates as a concept is not covered here; for more information, see Control Styles and Templates.

La syntaxe d’attribut est la syntaxe la plus couramment utilisée avec cette extension de balisage.Attribute syntax is the most common syntax used with this markup extension. Le jeton de chaîne fourni après la chaîne d’identificateur TemplateBinding est assigné en tant que valeur Property de la classe d’extension TemplateBindingExtension sous-jacente.The string token provided after the TemplateBinding identifier string is assigned as the Property value of the underlying TemplateBindingExtension extension class.

La syntaxe d'élément objet est possible, mais elle n'est pas indiquée car elle ne possède aucune application réaliste.Object element syntax is possible, but it is not shown because it has no realistic application. TemplateBinding est utilisé pour remplir des valeurs dans des méthodes setter, à l'aide d'expressions évaluées. En outre, l'utilisation de la syntaxe d'élément objet de TemplateBinding pour remplir la syntaxe des éléments de propriété <Setter.Property> est inutilement détaillée.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 peut également être utilisé dans une utilisation d'attributs en clair qui spécifie la propriété Property en tant que paire propriété=valeur :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}" ... />

L'utilisation en clair est souvent utile pour les extensions qui comportent plusieurs propriétés définissables ou si certaines propriétés sont facultatives.The verbose usage is often useful for extensions that have more than one settable property, or if some properties are optional. TemplateBinding ne comportant qu'une seule propriété définissable (obligatoire), cette utilisation en clair n'est pas classique.Because TemplateBinding has only one settable property, which is required, this verbose usage is not typical.

Dans l' WPFWPF implémentation du processeur XAML, la gestion de cette extension de balisage est TemplateBindingExtension définie par la classe.In the WPFWPF XAML processor implementation, the handling for this markup extension is defined by the TemplateBindingExtension class.

TemplateBinding est une extension de balisage.TemplateBinding is a markup extension. Les extensions de balisage sont généralement implémentées pour éviter que les valeurs d’attribut ne soient autre chose que des valeurs littérales ou des noms de gestionnaire et lorsque l’exigence dépasse le cadre de la définition de convertisseurs de type sur certains types ou propriétés.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. Toutes les extensions de balisage en { XAML } utilisent les caractères et dans leur syntaxe d’attribut, qui est la Convention selon laquelle un processeur XAML reconnaît qu’une extension de balisage doit traiter l’attribut.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. Pour plus d’informations, consultez Extensions de balisage et XAML WPF.For more information, see Markup Extensions and WPF XAML.

Voir aussiSee also