Produit une valeur mode de Self. L’élément cible doit être utilisé comme source pour cette liaison. Cela est utile pour lier une propriété d’un élément à une autre propriété sur le même élément.
{RelativeSource TemplatedParent}
Produit un ControlTemplate appliqué comme source pour cette liaison. Cela est utile pour appliquer des informations d’exécution aux liaisons au niveau du modèle.
Notes
Une liaison peut définir Binding.RelativeSource en tant qu’attribut sur un élément d’objet Binding ou en tant que composant dans une extension de balisage {Binding}. C’est pourquoi deux syntaxes XAML différentes sont affichées.
RelativeSource est similaire à l’extension de balisage {Binding}. Il s’agit d’une extension de balisage capable de retourner des instances de lui-même et de prendre en charge une construction basée sur des chaînes qui transmet essentiellement un argument au constructeur. Dans ce cas, l’argument passé est la valeur mode.
Le mode Self est utile pour lier une propriété d’un élément à une autre propriété sur le même élément, et est une variante de la liaison ElementName, mais ne nécessite pas d’affectation de noms, puis de référencer automatiquement l’élément. Si vous liez une propriété d’un élément à une autre propriété sur le même élément, soit les propriétés doivent utiliser le même type de propriété, soit vous devez également utiliser un convertisseur sur la liaison pour convertir les valeurs. Par exemple, vous pouvez utiliser Height comme source pour Width sans conversion, mais vous avez besoin d’un convertisseur pour utiliser IsEnabled comme source pour Visibility.
Voici un exemple. Ce rectangle utilise une extension de balisage {Binding} afin que sa hauteur et sa largeur soient toujours égales et qu’elle s’affiche en tant que carré. Seule la hauteur est définie comme une valeur fixe. Pour ce rectangle, son DataContext par défaut est null, et non pas pour cela. Par conséquent, pour établir la source de contexte de données comme objet lui-même (et activer la liaison à ses autres propriétés), nous utilisons l’argument RelativeSource={RelativeSource Self} dans l’utilisation de l’extension de balisage {Binding}.
Une autre utilisation RelativeSource={RelativeSource Self} consiste à définir DataContext d’un objet sur elle-même. Par exemple, vous pouvez voir cette technique dans certains exemples du Kit de développement logiciel (SDK) où la classe Page a été étendue avec une propriété personnalisée qui fournit déjà un modèle de vue prêt à l’utilisation pour sa propre liaison de données, par exemple : <common:LayoutAwarePage ... DataContext="{Binding DefaultViewModel, RelativeSource={RelativeSource Self}}">
Notez que l’utilisation XAML pour RelativeSource affiche uniquement l’utilisation pour laquelle elle est destinée : définition d’une valeur pour Binding.RelativeSource en XAML dans le cadre d’une expression de liaison. Théoriquement, d’autres utilisations sont possibles si vous définissez une propriété où la valeur est RelativeSource.
Créer une interface utilisateur avec la liaison de données. Votre interface utilisateur est automatiquement mise à jour en fonction des données les plus récentes, tandis que les données sont mises à jour suite aux modifications apportées à l’interface utilisateur.
Répertorie la prise en charge au niveau du langage en XAML pour Windows Runtime pour certains types de données dans le Common Language Runtime (CLR) et dans d’autres langages de programmation tels que C++.
Fournit une valeur pour n’importe quel attribut XAML en évaluant une référence à une ressource provenant d’une implémentation personnalisée de recherche de ressources. La recherche de ressources est effectuée par une implémentation de classe CustomXamlResourceLoader.