Partager via


x :Array Markup Extension

Fournit une prise en charge générale des tableaux d’objets en XAML via une extension de balisage. Cela correspond au type XAML x:ArrayExtension dans [MS-XAML].

Utilisation des éléments d’objet XAML

<x:Array Type="typeName">
  arrayContents
</x:Array>

Valeurs XAML

Valeur Description
typeName Nom du type que votre x:Array contiendra. typeName peut être (et souvent) préfixé pour un espace de noms XAML qui contient les définitions de type XAML.
arrayContents Contenu des éléments affecté à la propriété ArrayExtension.Items intrinsèque. En règle générale, ces éléments sont spécifiés en tant qu’un ou plusieurs éléments d’objet contenus dans la x:Array balises d’ouverture et de fermeture. Les objets spécifiés ici sont censés être assignables au type XAML spécifié dans typeName.

Remarques

Type est un attribut obligatoire pour tous les éléments d’objet x:Array. Une valeur de paramètre Type n’a pas besoin d’utiliser une extension de balisage x:Type ; le nom court du type est un type XAML, qui peut être spécifié en tant que chaîne.

Dans l’implémentation des services XAML .NET, la relation entre le type XAML d’entrée et le CLR de sortie Type du tableau créé est influencée par le contexte de service pour les extensions de balisage. La sortie Type est la UnderlyingType du type XAML d’entrée, après avoir recherché les XamlType nécessaires en fonction du contexte de schéma XAML et du service IXamlTypeResolver fourni par le contexte.

En cas de traitement, le contenu du tableau est affecté à la propriété intrinsèque ArrayExtension.Items. Dans l’implémentation ArrayExtension, elle est représentée par ArrayExtension.Items.

Dans l’implémentation des services XAML .NET, la gestion de cette extension de balisage est définie par la classe ArrayExtension. ArrayExtension n’est pas scellé et peut être utilisé comme base pour une implémentation d’extension de balisage pour un type de tableau personnalisé.

x:Array est plus destiné à l’extensibilité générale du langage en XAML. Mais x:Array peut également être utile pour spécifier des valeurs XAML de certaines propriétés qui prennent en charge les collections XAML comme contenu de propriété structurée. Par exemple, vous pouvez spécifier le contenu d’une propriété IEnumerable avec une utilisation x:Array.

x:Array 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’attributs à d’autres que les valeurs littérales ou les noms de gestionnaires, et que l’exigence est plus globale que de simplement placer des convertisseurs de type sur certains types ou propriétés. x:Array est partiellement une exception à cette règle, car au lieu de fournir une autre gestion des valeurs d’attribut, x:Array fournit une autre gestion de son contenu texte interne. Ce comportement permet aux types qui peuvent ne pas être pris en charge par un modèle de contenu existant à regrouper dans un tableau et référencés ultérieurement dans le code-behind en accédant au tableau nommé ; vous pouvez appeler des méthodes Array pour obtenir des éléments de tableau individuels.

Toutes les extensions de balisage en XAML utilisent les accolades ({,}) dans leur syntaxe d’attribut, c’est-à-dire la convention par laquelle un processeur XAML reconnaît qu’une extension de balisage doit traiter la valeur d’attribut. Pour plus d’informations sur les extensions de balisage en général, consultez Convertisseurs de types et extensions de balisage pour xaml.

En XAML 2009, x:Array est défini comme une primitive de langage au lieu d’une extension de balisage. Pour plus d’informations, consultez types intégrés pour les primitives de langage XAML courantes.

Notes d’utilisation WPF

En règle générale, les éléments d’objet qui remplissent un x:Array ne sont pas des éléments qui existent dans l’espace de noms XAML WPF et nécessitent un mappage de préfixe à un espace de noms XAML non défini par défaut.

Par exemple, voici un tableau simple de deux chaînes, avec le préfixe sys (et également x) défini au niveau du tableau.

<x:Array Type="sys:String"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:sys="clr-namespace:System;assembly=mscorlib">
  <sys:String>Hello</sys:String>
  <sys:String>World</sys:String>
</x:Array>

Pour les types personnalisés utilisés en tant qu’éléments de tableau, la classe doit également prendre en charge les exigences d’instanciation en XAML en tant qu’éléments d’objet. Pour plus d’informations, consultez classes XAML et personnalisées pour WPF.

Voir aussi