x:TypeArguments, directivex:TypeArguments Directive

Passes contraindre les arguments d’un générique au constructeur du type générique de type.Passes constraining type arguments of a generic to the constructor of the generic type.

Utilisation d'attributs XAMLXAML Attribute Usage

<object x:TypeArguments="typeString" .../>  

Valeurs XAMLXAML Values

object Une déclaration d’élément objet d’un type XAML, qui repose sur un type générique du CLR.An object element declaration of a XAML type, which is backed by a CLR generic type. Si object fait référence à un type XAML qui n’est pas à partir de l’espace de noms XAML par défaut, object nécessite un préfixe pour indiquer l’espace de noms XAML où object existe.If object refers to a XAML type that is not from the default XAML namespace, object requires a prefix to indicate the XAML namespace where object exists.
typeString Chaîne qui déclare le XAML d’un ou plusieurs noms de type sous forme de chaînes, qui fournit les arguments de type pour le type générique du CLR.A string that declares one or more XAML type names as strings, which supplies the type arguments for the CLR generic type. Consultez la section Notes pour accéder aux notes de la syntaxe supplémentaire.See Remarks for additional syntax notes.

NotesRemarks

Dans la plupart des cas, les types XAML qui sont utilisés comme un élément d’information dans un typeString chaîne sont préfixés.In most cases, the XAML types that are used as an information item in a typeString string are prefixed. Les types classiques de contraintes génériques CLR (par exemple, Int32 et String) proviennent de bibliothèques de classe de base CLR.Typical types of CLR generic constraints (for example, Int32 and String) come from CLR base class libraries. Ces bibliothèques ne sont pas des espaces de noms XAML mappé à un type valeur par défaut spécifiques à l’infrastructure et par conséquent, requièrent un mappage de préfixe pour l’utilisation XAML.Those libraries are not mapped to typical framework-specific default XAML namespaces, and therefore, require a prefix mapping for XAML usage.

Vous pouvez spécifier plusieurs noms de type XAML à l’aide d’une virgule.You can specify more than one XAML type name by using a comma delimiter.

Si les contraintes génériques eux-mêmes utilisent des types génériques, les arguments de type de contrainte imbriqué peuvent être contenus par des parenthèses ().If the generic constraints themselves use generic types, the nested constraint type arguments can be contained by parentheses ().

Notez que cette définition de x:TypeArguments est spécifique aux Services de XAML .NET Framework et à l’aide de stockage CLR.Note that this definition of x:TypeArguments is specific to .NET Framework XAML Services and using CLR backing. Vous trouverez une définition au niveau du langage dans [MS-XAML] Section 5.3.11.A language-level definition can be found in [MS-XAML] Section 5.3.11.

Exemples d’utilisationUsage Examples

Pour ces exemples, supposons que les définitions d’espace de noms XAML suivantes sont déclarées :For these examples, assume that the following XAML namespace definitions are declared:

xmlns:sys="clr-namespace:System;assembly=mscorlib"  
xmlns:scg="clr-namespace:System.Collections.Generic;assembly=mscorlib"  

Liste<chaîne >List<String>

<scg:List x:TypeArguments="sys:String" ...> instancie un nouveau List<T> avec un String argument de type.<scg:List x:TypeArguments="sys:String" ...> instantiates a new List<T> with a String type argument.

Dictionnaire<String, String >Dictionary<String,String>

<scg:Dictionary x:TypeArguments="sys:String,sys:String" ...> instancie un nouveau Dictionary<TKey,TValue> avec deux String arguments de type.<scg:Dictionary x:TypeArguments="sys:String,sys:String" ...> instantiates a new Dictionary<TKey,TValue> with two String type arguments.

File d’attente < KeyValuePair<String, String >>Queue<KeyValuePair<String,String>>

<scg:Queue x:TypeArguments="scg:KeyValuePair(sys:String,sys:String)" ...> instancie un nouveau Queue<T> qui a une contrainte de KeyValuePair<TKey,TValue> avec les arguments de type de contrainte interne String et String.<scg:Queue x:TypeArguments="scg:KeyValuePair(sys:String,sys:String)" ...> instantiates a new Queue<T> that has a constraint of KeyValuePair<TKey,TValue> with the inner constraint type arguments String and String.

Utilisations XAML générique de XAML 2006 et WPFXAML 2006 and WPF Generic XAML Usages

Pour l’utilisation de XAML 2006 et XAML qui est utilisé pour les applications WPF, les restrictions suivantes existent pour x:TypeArguments et utilisations de type générique à partir de XAML en général :For XAML 2006 usage, and XAML that is used for WPF applications, the following restrictions exist for x:TypeArguments and generic type usages from XAML in general:

  • Seul l’élément racine d’un fichier XAML peut prendre en charge une utilisation XAML générique qui fait référence à un type générique.Only the root element of a XAML file can support a generic XAML usage that references a generic type.

  • L’élément racine doit mapper à un type générique au moins un argument de type.The root element must map to a generic type with at least one type argument. Par exemple, PageFunction<T>.An example is PageFunction<T>. Les fonctions de page sont le scénario principal pour la prise en charge des génériques de l’utilisation XAML dans WPF.The page functions are the primary scenario for XAML generic usage support in WPF.

  • L’élément d’objet racine élément XAML pour le modèle générique doit également déclarer une classe partielle à l’aide x:Class.The root element XAML object element for the generic must also declare a partial class using x:Class. Cela est vrai même si l’action de génération de définition d’un WPF.This is true even if defining a WPF build action.

  • x:TypeArguments Impossible de référencer les contraintes génériques imbriqués.x:TypeArguments cannot reference nested generic constraints.

XAML 2009 ou 2006 XAML sans WPF 3.0 ni les WPF 3.5 dépendanceXAML 2009 or XAML 2006 with No WPF 3.0 or WPF 3.5 Dependency

Dans les Services XAML .NET Framework pour XAML 2006 ou XAML 2009, les restrictions liées à WPF sur l’utilisation XAML générique sont assouplies.In .NET Framework XAML Services for either XAML 2006 or XAML 2009, the WPF-related restrictions on generic XAML usage are relaxed. Vous pouvez instancier un élément objet générique à n’importe quelle position dans le balisage XAML prenant en charge la sauvegarde type système et le modèle objet.You can instantiate a generic object element at any position in XAML markup that the backing type system and object model can support.

Si vous utilisez XAML 2009 au lieu de mapper le CLR des types pour obtenir les types XAML pour les primitives de langage courantes de base, vous pouvez utiliser des Types intégrés pour les Primitives de langage XAML courantes en tant qu’éléments d’informations dans un typeString.If you use XAML 2009 instead of mapping the CLR base types to obtain XAML types for common language primitives, you can use Built-in Types for Common XAML Language Primitives as information items in a typeString. Par exemple, vous pouvez déclarer les éléments suivants (les mappages de préfixe ne pas affichés, mais x est l’espace de noms XAML de langage XAML pour XAML 2009) :For example, you could declare the following (prefix mappings not shown, but x is the XAML language XAML namespace for XAML 2009):

<my:BusinessObject x:TypeArguments="x:String,x:Int32"/>  

Dans WPF et lorsque vous ciblez .NET Framework 4, vous pouvez utiliser les fonctionnalités XAML 2009 avec x:TypeArguments mais uniquement pour XAML libre (XAML non compilé par balisage).In WPF and when targeting .NET Framework 4, you can use XAML 2009 features together with x:TypeArguments but only for loose XAML (XAML that is not markup-compiled). Le code XAML compilé par balisage pour WPF et la forme BAML du code XAML ne prennent actuellement pas en charge les mots clés et les fonctionnalités XAML 2009.Markup-compiled XAML for WPF and the BAML form of XAML do not currently support the XAML 2009 keywords and features. Si vous avez besoin de compiler le XAML par balisage, vous devez fonctionner selon les restrictions notées dans la section « XAML 2006 et WPF XAML utilisations générique ».If you need to markup compile the XAML, you must operate under the restrictions noted in the "XAML 2006 and WPF Generic XAML Usages" section.

Voir aussiSee also