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.

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

Référence

Binding