Binding, extension de balisageBinding Markup Extension

Diffère une valeur de propriété comme une valeur liée aux données, en créant un objet d’expression intermédiaire et en interprétant le contexte de données qui s’applique à l’élément et à sa liaison au moment de l’exécution.Defers a property value to be a data-bound value, creating an intermediate expression object and interpreting the data context that applies to the element and its binding at run time.

Utilisation des expressions de liaisonBinding Expression Usage

<object property="{Binding}" .../>  
-or-  
<object property="{Binding  bindProp1=value1[, bindPropN=valueN]*}" ...  
/>  
-or-  
<object property="{Binding path}" .../>  
-or  
<object property="{Binding path[, bindPropN=valueN]*}" .../>  

Remarques sur la syntaxeSyntax Notes

Dans ces syntaxes, [] et ne * sont pas des littéraux.In these syntaxes, the [] and * are not literals. Elles font partie d’une notation pour indiquer qu’aucune ou plusieurs = paires de valeurs bindProp peuvent être utilisées, avec un , séparateur entre elles et les paires de = valeurs bindProp précédentes.They are part of a notation to indicate that zero or more bindProp=value pairs can be used, with a , separator between them and preceding bindProp=value pairs.

Toutes les propriétés listées dans la section « Propriétés de liaison qui peuvent être définies avec l’extension de liaison » peuvent être définies à la place à l’aide des attributs d’un Binding élément objet.Any of the properties listed in the "Binding Properties That Can Be Set with the Binding Extension" section could instead be set using attributes of a Binding object element. Toutefois, il ne s’agit pas véritablement de l’utilisation de l’extension de balisage de Binding , il s’agit simplement du traitement XAML général des attributs qui définissent les propriétés de la Binding classe CLR.However, that is not truly the markup extension usage of Binding, it is just the general XAML processing of attributes that set properties of the CLR Binding class. En d’autres termes, <Binding bindProp1 =" value1 "[ bindPropN =" ValueN "]*/> est une syntaxe équivalente pour les attributs d' Binding utilisation d’élément objet au lieu d’une Binding utilisation d’expression.In other words, <Binding bindProp1="value1"[ bindPropN="valueN"]*/> is an equivalent syntax for attributes of Binding object element usage instead of a Binding expression usage. 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é appropriée de Binding dans la bibliothèque de classes .NET Framework.To learn about the XAML attribute usage of specific properties of Binding, see the "XAML Attribute Usage" section of the relevant property of Binding in the .NET Framework Class Library.

Valeurs XAMLXAML Values

bindProp1, bindPropN Nom de la Binding propriété ou BindingBase à définir.The name of the Binding or BindingBase property to set. Toutes les Binding Propriétés ne peuvent pas être définies avec l' Binding extension, et certaines propriétés peuvent être définies dans une Binding expression uniquement à l’aide d’extensions de balisage imbriquées supplémentaires.Not all Binding properties can be set with the Binding extension, and some properties are settable within a Binding expression only by using further nested markup extensions. Consultez la section « Propriétés de liaison qui peuvent être définies avec l’extension de liaison ».See "Binding Properties That Can Be Set with the Binding Extension" section.
value1, valueN Valeur à attribuer à la propriété.The value to set the property to. La gestion de la valeur d’attribut est en définitive spécifique au type et à la logique de la Binding propriété spécifique qui est définie.The handling of the attribute value is ultimately specific to the type and logic of the specific Binding property being set.
path Chaîne de chemin d’accès qui définit la propriété implicite Binding.Path .The path string that sets the implicit Binding.Path property. Voir aussi syntaxe XAML PropertyPath.See also PropertyPath XAML Syntax.

{Binding} non qualifiéUnqualified {Binding}

L' {Binding} utilisation indiquée dans « Binding expression usage » crée un Binding objet avec les valeurs par défaut, qui comprend un initial Binding.Path de null .The {Binding} usage shown in "Binding Expression Usage" creates a Binding object with default values, which includes an initial Binding.Path of null. Cela est toujours utile dans de nombreux scénarios, car le créé Binding peut reposer sur des propriétés de liaison de données clés telles que Binding.Path et Binding.Source qui sont définies dans le contexte de données au moment de l’exécution.This is still useful in many scenarios, because the created Binding might be relying on key data binding properties such as Binding.Path and Binding.Source being set in the run-time data context. Pour plus d’informations sur le concept de contexte de données, consultez liaison de données.For more information on the concept of data context, see Data Binding.

Chemin d’accès impliciteImplicit Path

L' Binding extension de balisage utilise Binding.Path comme « propriété par défaut » conceptuelle, où Path= ne doit pas apparaître dans l’expression.The Binding markup extension uses Binding.Path as a conceptual "default property", where Path= does not need to appear in the expression. Si vous spécifiez une Binding expression avec un chemin d’accès implicite, le chemin d’accès implicite doit apparaître en premier dans l’expression, avant toute autre bindProp = value paire où la Binding propriété est spécifiée par nom.If you specify a Binding expression with an implicit path, the implicit path must appear first in the expression, prior to any other bindProp=value pairs where the Binding property is specified by name. Par exemple : {Binding PathString} , où PathString est une chaîne qui est évaluée comme étant la valeur de Binding.Path dans le Binding créé par l’utilisation d’une extension de balisage.For example: {Binding PathString}, where PathString is a string that is evaluated to be the value of Binding.Path in the Binding created by the markup extension usage. Vous pouvez ajouter un chemin d’accès implicite avec d’autres propriétés nommées après le séparateur de virgules, par exemple {Binding LastName, Mode=TwoWay} .You can append an implicit path with other named properties after the comma separator, for example, {Binding LastName, Mode=TwoWay}.

Propriétés de liaison qui peuvent être définies avec l’extension de liaisonBinding Properties That Can Be Set with the Binding Extension

La syntaxe présentée dans cette rubrique utilise la bindProp = value approximation générique, car il existe de nombreuses propriétés de lecture/écriture de BindingBase ou Binding qui peuvent être définies par le biais de la Binding syntaxe d’extension de balisage/d’expression.The syntax shown in this topic uses the generic bindProp=value approximation, because there are many read/write properties of BindingBase or Binding that can be set through the Binding markup extension / expression syntax. Ils peuvent être définis dans n’importe quel ordre, à l’exception d’un implicite Binding.Path .They can be set in any order, with the exception of an implicit Binding.Path. (Vous avez la possibilité de spécifier explicitement Path= , auquel cas elle peut être définie dans n’importe quel ordre).(You do have the option to explicitly specify Path=, in which case it can be set in any order). En fait, vous pouvez définir zéro, une ou plusieurs des propriétés dans la liste ci-dessous, en utilisant des bindProp = value paires séparées par des virgules.Basically, you can set zero or more of the properties in the list below, using bindProp=value pairs separated by commas.

Plusieurs de ces valeurs de propriété requièrent des types d’objet 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.Several of these property values require object types that do not support a native type conversion from a text syntax in XAML, and thus require markup extensions in order to be set as an attribute value. 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 plus d’utilisation d’extension de balisage est fondamentalement identique à la valeur que vous spécifiez dans une Binding expression, à l’exception près que vous ne placez pas de guillemets autour bindProp = value de chaque dans l' Binding expression.Check the XAML Attribute Usage section in the .NET Framework Class Library for each property for more information; the string you use for XAML attribute syntax with or without further markup extension usage is basically the same as the value you specify in a Binding expression, with the exception that you do not place quotation marks around each bindProp=value in the Binding expression.

Les propriétés suivantes Binding ne peuvent pas être définies à l’aide du Binding formulaire d’extension de balisage/ {Binding} expression.The following are properties of Binding that cannot be set using the Binding markup extension/{Binding} expression form.

  • UpdateSourceExceptionFilter: cette propriété attend une référence à une implémentation de rappel.UpdateSourceExceptionFilter: this property expects a reference to a callback implementation. Les rappels/méthodes autres que les gestionnaires d’événements ne peuvent pas être référencés dans la syntaxe XAML.Callbacks/methods other than event handlers cannot be referenced in XAML syntax.

  • ValidationRules: la propriété prend une collection générique d' ValidationRule objets.ValidationRules: the property takes a generic collection of ValidationRule objects. Cela peut être exprimé comme un élément de propriété dans un Binding élément objet, mais n’a pas de technique d’analyse d’attributs facilement disponible pour une utilisation dans une Binding expression.This could be expressed as a property element in a Binding object element, but has no readily available attribute-parsing technique for usage in a Binding expression. Consultez la rubrique de référence pour ValidationRules .See reference topic for ValidationRules.

  • XmlNamespaceManager

RemarquesRemarks

Important

En termes de priorité des propriétés de dépendance, une Binding expression est équivalente à une valeur définie localement.In terms of dependency property precedence, a Binding expression is equivalent to a locally set value. Si vous définissez une valeur locale pour une propriété qui avait précédemment une Binding expression, le Binding est complètement supprimé.If you set a local value for a property that previously had a Binding expression, the Binding is completely removed. Pour plus d’informations, consultez Priorité de la valeur de propriété de dépendance.For details, see Dependency Property Value Precedence.

La description de la liaison de données à un niveau de base n’est pas traitée dans cette rubrique.Describing data binding at a basic level is not covered in this topic. Consultez vue d’ensemblede la liaison de données.See Data Binding Overview.

Notes

MultiBinding et PriorityBinding ne prennent pas en charge une XAMLXAML syntaxe d’extension.MultiBinding and PriorityBinding do not support a XAMLXAML extension syntax. Au lieu de cela, vous devez utiliser des éléments de propriété.You would instead use property elements. Consultez les rubriques de référence pour MultiBinding et PriorityBinding .See reference topics for MultiBinding and PriorityBinding.

Les valeurs booléennes pour XAML ne respectent pas la casse.Boolean values for XAML are case insensitive. Par exemple, vous pouvez spécifier {Binding NotifyOnValidationError=true} ou {Binding NotifyOnValidationError=True} .For example you could specify either {Binding NotifyOnValidationError=true} or {Binding NotifyOnValidationError=True}.

Les liaisons qui impliquent la validation des données sont généralement spécifiées par un Binding élément explicite plutôt que comme une {Binding ...} expression, et la définition ValidatesOnDataErrors ou ValidatesOnExceptions dans une expression est rare.Bindings that involve data validation are typically specified by an explicit Binding element rather than as a {Binding ...} expression, and setting ValidatesOnDataErrors or ValidatesOnExceptions in an expression is uncommon. Cela est dû au fait que la propriété associée ValidationRules ne peut pas être définie facilement dans le formulaire d’expression.This is because the companion property ValidationRules cannot be readily set in the expression form. Pour plus d’informations, consultez implémenter la validation de liaison.For more information, see Implement Binding Validation.

Binding est une extension de balisage.Binding is a markup extension. Les extensions de balisage sont généralement implémentées lorsqu’il est nécessaire d’échapper des valeurs d’attribut pour qu’elles soient autres que des valeurs littérales ou des noms de gestionnaire, et que la spécification soit plus globale que les convertisseurs de type attribués sur certains types ou propriétés.Markup extensions are typically implemented when there is a requirement to escape attribute values to be other than literal values or handler names, and the requirement is more global than type converters attributed on certain types or properties. Toutes les extensions de balisage en XAML utilisent les { } caractères et dans leur syntaxe d’attribut, qui est la Convention selon laquelle un processeur XAML reconnaît qu’une extension de balisage doit traiter le contenu de la chaîne.All markup extensions in XAML use the { and } characters in their attribute syntax, which is the convention by which a XAML processor recognizes that a markup extension must process the string contents. Pour plus d’informations, consultez Extensions de balisage et XAML WPF.For more information, see Markup Extensions and WPF XAML.

Binding est une extension de balisage atypique en ce que la Binding classe qui implémente les fonctionnalités 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 à XAML.Binding is an atypical markup extension in that the Binding class that implements the extension functionality for WPF's XAML implementation also implements several other methods and properties that are not related to XAML. Les autres membres sont conçus pour créer Binding une classe plus polyvalente et autonome qui peut traiter de nombreux scénarios de liaison de données en plus de fonctionner comme une extension de balisage XAML.The other members are intended to make Binding a more versatile and self-contained class that can address many data binding scenarios in addition to functioning as a XAML markup extension.

Voir aussiSee also