Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
Reporte une valeur de propriété pour être une valeur liée aux données, créant un objet d’expression intermédiaire et interprétant le contexte de données qui s’applique à l’élément et à sa liaison au moment de l’exécution.
Utilisation des expressions de liaison
<object property="{Binding}" .../>
-or-
<object property="{Binding bindProp1=value1[, bindPropN=valueN]*}" ...
/>
-or-
<object property="{Binding path}" .../>
-or
<object property="{Binding path[, bindPropN=valueN]*}" .../>
Notes de syntaxe
Dans ces syntaxes, les [] et * ne sont pas des littéraux. Ils font partie d'une notation pour indiquer que zéro ou plusieurs paires bindProp=value peuvent être utilisées, avec un , séparateur entre elles et les paires bindProp=value précédentes.
Toutes les propriétés répertoriées dans la section « Propriétés de liaison pouvant être définies avec l’extension de liaison » peuvent plutôt être définies à l’aide d’attributs d’un Binding élément objet. Toutefois, ce n’est pas vraiment l’utilisation de l’extension de balisage , Bindingil s’agit simplement du traitement XAML général des attributs qui définissent les propriétés de la classe CLR Binding . En d’autres termes, <BindingbindProp1="value1"[bindPropN valueN=""]*/> est une syntaxe équivalente pour les attributs d’utilisation des Binding éléments d’objet au lieu d’une Binding utilisation d’expression. Pour en savoir plus sur l’utilisation des attributs XAML des propriétés spécifiques de Binding, consultez la section « Utilisation des attributs XAML » de la propriété correspondante dans la bibliothèque de classes .NET Framework de Binding.
Valeurs XAML
| Valeur | Descriptif |
|---|---|
bindProp1, bindPropN |
Le nom de la propriété Binding ou BindingBase à définir. Les propriétés Binding ne peuvent pas toutes être définies avec l’extension Binding, et certaines ne peuvent être définies dans une expression Binding qu’à l’aide d’extensions de balisage imbriquées supplémentaires. Consultez la section « Propriétés de liaison qui peuvent être définies avec l’extension de liaison ». |
value1, valueN |
La valeur à attribuer à la propriété. La gestion de la valeur d’attribut est finalement spécifique au type et à la logique de la propriété spécifique Binding définie. |
path |
Chaîne de chemin qui définit la propriété implicite Binding.Path . Consultez également La syntaxe XAML PropertyPath. |
{Binding} non qualifié
L’utilisation {Binding} indiquée dans « Binding Expression Usage » crée un objet Binding avec des valeurs par défaut, ce qui inclut une valeur initiale Binding.Path de null. Cela est toujours utile dans de nombreux scénarios, car la création Binding peut s’appuyer sur des propriétés de liaison de données clés telles que Binding.Path et Binding.Source définies dans le contexte de données au moment de l’exécution. Pour plus d’informations sur le concept de contexte de données, consultez Liaison de données.
Chemin implicite
L'extension de balisage Binding utilise Binding.Path comme une "propriété par défaut" conceptuelle, où Path= n'a pas besoin d'apparaître dans l'expression. Si vous spécifiez une expression avec un Binding chemin d’accès implicite, le chemin implicite doit apparaître en premier dans l’expression, avant les bindProp=value paires où la propriété Binding est spécifiée par son nom. Par exemple : {Binding PathString}, où PathString est une chaîne évaluée comme étant la valeur de Binding.Path dans le Binding créé par l’utilisation de l’extension de balisage. Vous pouvez ajouter un chemin implicite avec d’autres propriétés nommées après le séparateur de virgules, par exemple {Binding LastName, Mode=TwoWay}.
Propriétés de liaison qui peuvent être définies avec l’extension de liaison
La syntaxe indiquée dans cette rubrique utilise l’approximation générique bindProp=value, car il existe de nombreuses propriétés de lecture/écriture de BindingBase ou Binding qui peuvent être définies par le biais de l’extension / syntaxe d’expression de balisage Binding. Ils peuvent être définis dans n’importe quel ordre, à l’exception d’un implicite Binding.Path. (Vous avez la possibilité de spécifier Path=explicitement , auquel cas il peut être défini dans n’importe quel ordre). En fait, vous pouvez définir zéro ou plusieurs propriétés dans la liste ci-dessous, en utilisant bindProp=value des paires séparées par des virgules.
Plusieurs de ces valeurs de propriété nécessitent des types d’objets qui ne prennent pas en charge une conversion de type native à partir d’une syntaxe de texte en XAML, et nécessitent donc des extensions de balisage pour être définies en tant que valeur d’attribut. Pour plus d’informations, consultez la section Utilisation des attributs XAML dans la bibliothèque de classes .NET Framework pour chaque propriété ; la chaîne que vous utilisez pour la syntaxe d’attribut XAML avec ou sans utilisation supplémentaire de l’extension de balisage est essentiellement identique à la valeur que vous spécifiez dans une Binding expression, à l’exception que vous ne placez pas de guillemets autour de chacunebindProp=valuedans l’expression.Binding
BindingGroupName: chaîne qui identifie un groupe de liaisons possible. Il s’agit d’un concept de liaison relativement avancé ; voir la page de référence pour BindingGroupName.
BindsDirectlyToSource: booléen, peut être soit
trueoufalse. La valeur par défaut estfalse.Converter: peut être défini en tant que
bindProp=valuechaîne dans l’expression, mais pour ce faire, nécessite une référence d’objet pour la valeur, telle qu’une extension staticResource Markup. La valeur dans ce cas est une instance d’une classe de convertisseur personnalisée.ConverterCulture: settable dans l’expression en tant qu’identificateur basé sur des normes ; consultez la rubrique de référence pour ConverterCulture.
ConverterParameter: peut être défini en tant que
bindProp=valuechaîne dans l’expression, mais cela dépend du type du paramètre passé. Si vous passez un type de référence pour la valeur, cette utilisation nécessite une référence d’objet telle qu’une extension de balisage StaticResource imbriquée.ElementName : mutuellement exclusif par rapport à RelativeSource et Source ; chacune de ces propriétés de liaison représente une méthodologie de liaison particulière. Consultez Vue d’ensemble de la liaison de données.
FallbackValue: peut être défini en tant que
bindProp=valuechaîne dans l’expression, mais cela dépend du type de la valeur passée. Si vous passez un type de référence, nécessite une référence d’objet telle qu’une extension de balisage StaticResource imbriquée.IsAsync: booléen, peut être soit
trueoufalse. La valeur par défaut estfalse.Mode: valeur est un nom constant de l’énumération BindingMode . Par exemple :
{Binding Mode=OneWay}.NotifyOnSourceUpdated: booléen, peut être soit
trueoufalse. La valeur par défaut estfalse.NotifyOnTargetUpdated: booléen, peut être soit
trueoufalse. La valeur par défaut estfalse.NotifyOnValidationError: booléen, peut être soit
trueoufalse. La valeur par défaut estfalse.Path: chaîne qui décrit un chemin d’accès à un objet de données ou à un modèle objet général. Le format fournit plusieurs conventions différentes pour parcourir un modèle objet qui ne peut pas être décrit correctement dans cette rubrique. Consultez syntaxe XAML de PropertyPath.
RelativeSource: s’excluent mutuellement par rapport à ElementName et Source; chacune de ces propriétés de liaison représente une méthodologie de liaison particulière. Consultez Vue d’ensemble de la liaison de données. Nécessite une utilisation imbriquée de RelativeSource MarkupExtension pour spécifier la valeur.
Source : mutuellement exclusif par rapport à RelativeSource et ElementName ; chacune de ces propriétés de liaison représente une méthodologie de liaison particulière. Consultez Vue d’ensemble de la liaison de données. Nécessite une utilisation d’extension imbriquée, généralement une extension staticResource Markup qui fait référence à une source de données d’objet à partir d’un dictionnaire de ressources clé.
StringFormat: chaîne qui décrit une convention de format de chaîne pour les données liées. Il s’agit d’un concept de liaison relativement avancé ; voir la page de référence pour StringFormat.
TargetNullValue: peut être défini en tant que
bindProp=valuechaîne dans l’expression, mais cela dépend du type du paramètre passé. Si vous transmettez un type de référence pour la valeur, cela nécessite une référence d’objet telle qu’une extension de balisage StaticResource imbriquée.UpdateSourceTrigger: valeur est un nom constant de l’énumération UpdateSourceTrigger . Par exemple :
{Binding UpdateSourceTrigger=LostFocus}. Les contrôles spécifiques ont potentiellement des valeurs par défaut différentes pour cette propriété de liaison. Voir UpdateSourceTrigger.ValidatesOnDataErrors: booléen, peut être soit
trueoufalse. La valeur par défaut estfalse. Voir les remarques.ValidatesOnExceptions: booléen, peut être soit
trueoufalse. La valeur par défaut estfalse. Voir les remarques.XPath: chaîne qui décrit un chemin d’accès au XMLDOM d’une source de données XML. Consultez Lier des données XML à l'aide d'un XMLDataProvider et des requêtes XPath.
Les propriétés suivantes de Binding ne peuvent pas être définies à l'aide de l'extension de balisage/de la forme d'expression Binding{Binding}.
UpdateSourceExceptionFilter: cette propriété attend une référence à une implémentation de rappel. Les rappels/méthodes autres que les gestionnaires d’événements ne peuvent pas être référencés dans la syntaxe XAML.
ValidationRules: la propriété prend une collection générique d'ValidationRule objets. Cela peut être exprimé en tant qu’élément de propriété dans un Binding élément objet, mais n’a pas de technique d’analyse d’attributs facilement disponible pour l’utilisation dans une
Bindingexpression. Consultez la rubrique de référence pour ValidationRules.
Remarques
Important
En termes de précédence de propriété de dépendance, une Binding expression équivaut à une valeur définie localement. Si vous établissez une valeur spécifique pour une propriété qui avait précédemment une expression Binding, l'Binding est complètement supprimée. Pour plus d’informations, consultez Priorité de la valeur de propriété de dépendance.
La description de la liaison de données à un niveau de base n’est pas abordée dans cette rubrique. Consultez Vue d’ensemble de la liaison de données.
Remarque
MultiBinding et PriorityBinding ne prennent pas en charge une syntaxe d’extension XAML. Vous préféreriez utiliser des éléments de propriété. Consultez les rubriques de référence pour MultiBinding et PriorityBinding.
Les valeurs booléennes pour XAML sont insensibles à la casse. Par exemple, vous pouvez spécifier soit {Binding NotifyOnValidationError=true} soit {Binding NotifyOnValidationError=True}.
Les liaisons qui impliquent la validation des données sont généralement spécifiées par un élément explicite Binding plutôt que comme expression {Binding ...} , et le paramètre ValidatesOnDataErrors ou ValidatesOnExceptions dans une expression est rare. Cela est dû au fait que la propriété ValidationRules complémentaire ne peut pas être facilement définie dans le formulaire d’expression. Pour plus d’informations, consultez Implémenter la validation de liaison.
Binding est une extension de balisage. Les extensions de balisage sont généralement implémentées lorsqu'il est nécessaire d'échapper à des valeurs d'attribut en utilisant autre chose que des valeurs littérales ou des noms de gestionnaires, et que cette exigence est plus globale que celle des convertisseurs de type appliqués à certains types ou propriétés. Toutes les extensions de balisage en XAML utilisent les caractères { et } dans leur syntaxe d’attribut, qui est la convention par laquelle un processeur XAML reconnaît qu'une extension de balisage doit traiter le contenu de la chaîne. Pour plus d’informations, consultez les extensions de balisage et le XAML WPF.
Binding est une extension de balisage atypique dans laquelle la Binding classe qui implémente la fonctionnalité d’extension pour l’implémentation XAML de WPF implémente également plusieurs autres méthodes et propriétés qui ne sont pas liées au code XAML. Les autres membres sont destinés à rendre Binding une classe plus polyvalente et autonome qui peut traiter de nombreux scénarios de liaison de données en plus de fonctionner en tant qu’extension de balisage XAML.
Voir aussi
.NET Desktop feedback