Binding, extension de balisage
Mise à jour : novembre 2007
Accepte une valeur de propriété comme valeur liée aux données, en créant un objet d'expression et interprétant le contexte de données qui s'applique à l'élément au moment de l'exécution.
Utilisation des attributs XAML
<object property="{Binding}" .../>
- ou -
<object property="{Binding bindingPropertyName1=value,
bindingPropertyName2=value,
bindingPropertyNameN=value}" ...
/>
Utilisation des éléments d'objet XAML
<object>
<object.property>
<Binding/>
</object.property>
</object>
- ou -
<object>
<object.property>
<Binding bindingPropertyName1="value"
bindingPropertyName2="value"
bindingPropertyNameN="value"
/>
</object.property>
</object>
Les propriétés répertoriées ci-dessous, qui seraient définies en tant que paire propriété=valeur dans la syntaxe des attributs de l'exemple, peuvent être définies en tant qu'attributs de l'élément Binding, comme défini dans la syntaxe des éléments de l'objet.
Valeurs XAML
bindingPropertyName# |
Le Name de la propriété Binding à définir. Toutes les propriétés Binding ne peuvent pas être définies avec l'extension Binding, alors que certaines propriétés peuvent être définies uniquement à l'aide des extensions de balisage imbriquées. Consultez la section « Propriétés Binding pouvant être définies avec l'extension Binding ». |
value |
La valeur à attribuer à la propriété. La gestion de la valeur d'attribut est en définitive spécifique au type et à la logique du bindingPropertyName qui est défini. |
Propriétés Binding pouvant être définies avec l'extension Binding
La syntaxe indiquée dans cette rubrique utilise l'approximation bindingPropertyName=value générique, car il existe de nombreuses propriétés en lecture/écriture de BindingBase ou Binding qui peuvent être définies par le biais de la syntaxe d'extension de balisage Binding. Leur ordre de définition n'a pas d'importance. Au fond, vous pouvez ne définir aucune propriété ou définir plusieurs propriété dans la liste ci-dessous, en utilisant des paires propriété=valeur séparées par des virgules.
Plusieurs de ces valeurs de propriétés nécessitent des types d'objet qui ne prennent pas en charge un type de conversion natif, et requièrent ainsi la définition des utilisations des extensions de balisage XAML en tant que valeur d'attribut. Consultez la section Utilisation des attributs XAML dans la référence de chaque propriété pour déterminer la syntaxe d'attributs correcte.
BindsDirectlyToSource : le type bool, peut être true ou false.
Converter : peut être défini en XAML, mais pour cela vous devez avoir une référence d'objet telle qu'une StaticResource, extension de balisage.
ConverterCulture : peut être défini comme identificateur basé sur les standards ; consultez la référence pour ConverterCulture.
ConverterParameter : si un type par référence est transmis, requiert une référence d'objet comme StaticResource, extension de balisage.
ElementName : mutuellement exclusives par rapport à RelativeSource, Source ; chacune de propriétés représente une méthodologie de liaison particulière. Consultez Vue d'ensemble de la liaison de données.
FallbackValue : si un type par référence est transmis, requiert une référence d'objet comme StaticResource, extension de balisage.
Path : consultez PropertyPath, syntaxe XAML.
RelativeSource : mutuellement exclusives par rapport à ElementName, Source ; chacune de propriétés représente une méthodologie de liaison particulière. Consultez Vue d'ensemble de la liaison de données. Nécessite l'utilisation d'une RelativeSource, extension de balisage.
Source : mutuellement exclusives par rapport à RelativeSource, ElementName ; chacune de propriétés représente une méthodologie de liaison particulière. Consultez Vue d'ensemble de la liaison de données. Nécessite une référence d'objet, par exemple une StaticResource, extension de balisage.
Les propriétés suivantes sont des propriétés Binding qui ne peuvent pas être définies à l'aide de l'extension de balisage Binding.
Notes
Les espaces réservés bindingPropertyName indiqués ici correspondent aux noms de certaines des propriétés définissables déclarées de la classe Binding, et les chaînes de valeur sont équivalentes à la façon dont ces valeurs de propriétés seraient définies en tant qu'attribut XAML dans une Binding déclarée en tant qu'élément XAML.
La description de la liaison de données en tant que concept n'est traitée ici ; consultez Vue d'ensemble de la liaison de données pour les concepts Vue d'ensemble des déclarations de liaison et des détails supplémentaires sur la syntaxe de rechange. Le traitement de la syntaxe de remplacement inclut la façon de créer des liaisons équivalentes par un nombre de syntaxes possibles, comme les propriétés d'attribut d'un élément d'objet Binding en XAML, la syntaxe d'un élément de propriété d'un Binding, ou la création procédurale d'une liaison à l'aide du constructeur SetBinding ou Binding.
Remarque importante : |
---|
En termes de priorité des propriétés de dépendance, une expression Binding est équivalente à une valeur définie localement. Si vous définissez une valeur locale pour une propriété qui avait précédemment une expression Binding, Binding est supprimée complètement. Pour plus d'informations, consultez Priorité de la valeur de propriété de dépendance. |
Remarque : |
---|
MultiBinding et PriorityBinding ne prennent pas en charge une syntaxe d'extension XAML (en dépit du partage de la même classe BindingBase, qui implémente en fait le comportement XAML pour Binding). |
Binding est une extension de balisage. Les extensions de balisage sont en règle générale implémentées quand il est nécessaire que les valeurs d'attribut soient autre chose que des valeurs littérales ou des noms de gestionnaire, et que l'exigence est plus globale que le simple fait de mettre des 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, qui est pour un processeur XAML la convention selon laquelle une extension de balisage doit traiter l'attribut. Pour plus d'informations, consultez Extensions de balisage et XAML. Binding est une extension de balisage inhabituelle car la classe Binding qui implémente la fonctionnalité de l'extension est également celle qui implémente plusieurs autres méthodes et propriétés. Ces autres membres ne constituent pas directement une exigence pour la fonctionnalité de l'extension de balisage. Les membres sont destinés à rendre Binding une classe plus autonome polyvalente pouvant traiter de nombreux scénarios de liaison de données en plus de fonctionner en tant qu'extension de balisage XAML.
Voir aussi
Concepts
Vue d'ensemble de la liaison de données
Vue d'ensemble des déclarations de liaison
Vue d'ensemble du langage XAML
Extensions de balisage et XAML