TemplateBinding, extension de balisage
Mise à jour : novembre 2007
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.
Utilisation des attributs XAML
<object property="{TemplateBinding targetProperty}" .../>
Utilisation des attributs XAML (pour la propriété d'accesseur Set dans le modèle ou le style)
<Setter Property="propertyName" Value="{TemplateBinding targetProperty}" .../>
Valeurs XAML
propertyName |
DependencyProperty.Name de la propriété définie dans la syntaxe d'accesseur Set. |
targetProperty |
Propriété de dépendance qui existe sur le type basé sur un modèle, spécifiée par DependencyProperty.Name. - ou - Nom de propriété "dotted-down" défini par un autre type que le type de cible basé sur un modèle. Il s'agit en réalité d'un PropertyPath. Consultez PropertyPath, syntaxe XAML. |
Notes
Un TemplateBinding est une version optimisée d'un Binding pour les scénarios de modèle, similaire à un Binding construit avec {Binding RelativeSource={RelativeSource TemplatedParent}}.
RelativeSource est une autre extension de balisage parfois utilisée avec ou au lieu de TemplateBinding afin d'effectuer une liaison de propriété relative dans un modèle.
Cette rubrique ne décrit pas le concept des modèles de contrôle. Pour plus d'informations, consultez Exemples de ControlTemplate.
La syntaxe d'attribut est la syntaxe la plus couramment utilisée avec cette extension de balisage. 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.
La syntaxe d'élément objet est tout à fait possible, mais elle n'est pas illustrée, car elle ne possède aucune application réaliste. TemplateBinding est utilisé pour remplir des valeurs dans des accesseurs Set à l'aide d'expressions évaluées. En outre, la syntaxe d'élément objet pour TemplateBinding afin de remplir la syntaxe d'élément de propriété <Setter.Property> est inutilement en mode clair.
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 :
<object property="{TemplateBinding Property=targetProperty}" .../>
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. TemplateBinding ne comportant qu'une seule propriété définissable (obligatoire), cette utilisation en clair n'est pas classique.
Dans l'implémentation du processeur XAMLWPF, la gestion de cette extension de balisage est définie par la classe TemplateBindingExtension.
TemplateBinding est une extension de balisage. Des 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 va plus loin que la définition de convertisseurs de type sur certains types ou propriétés. Toutes les extensions de balisage en XAML utilisent les caractères { et } dans leur syntaxe d'attributs. Cette convention indique au convertisseur XAML que l'extension de balisage doit traiter l'attribut. Pour plus d'informations, consultez Extensions de balisage et XAML.
Voir aussi
Concepts
Application d'un style et création de modèles
Vue d'ensemble du langage XAML
Extensions de balisage et XAML
Référence
RelativeSource, extension de balisage