TemplateBinding, extension de balisage

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 d'attributs XAML

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

Utilisation d'attributs XAML (pour la propriété de méthode setter dans le modèle ou le style)

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

Valeurs XAML

Valeur Description
propertyName DependencyProperty.Name de la propriété définie dans la syntaxe de méthode setter.
sourceProperty Autre 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 la syntaxe XAML PropertyPath.

Notes

Il TemplateBinding s’agit d’une forme optimisée d’un Binding modèle pour les scénarios de modèle, analogue à une Binding construction avec {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. Les deux propriétés doivent toutes être des propriétés de dépendance. Pour obtenir une liaison bidirectionnelle à un parent modèle, utilisez plutôt l’instruction {Binding RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay, Path=MyDependencyProperty}de liaison suivante.

RelativeSource est une autre extension de balisage qui est parfois utilisée conjointement avec ou au lieu d’effectuer une liaison de TemplateBinding propriété relative dans un modèle.

La description des modèles de contrôle comme concept n’est pas abordée ici ; pour plus d’informations, consultez Styles et modèles de contrôle.

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 possible, mais elle n'est pas indiquée car elle ne possède aucune application réaliste. 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 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=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. 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 XAML WPF, la gestion de cette extension de balisage est définie par la TemplateBindingExtension classe.

TemplateBinding est une extension de balisage. 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. Toutes les extensions de balisage en XAML utilisent les caractères et } les { caractères de leur syntaxe d’attribut, c’est-à-dire la convention par laquelle un processeur XAML reconnaît qu’une extension de balisage doit traiter l’attribut. Pour plus d’informations, consultez Extensions de balisage et XAML WPF.

Voir aussi