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].
<x:Array Type="typeName">
arrayContents
</x:Array>
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 . |
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.
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.
Commentaires sur .NET Desktop feedback
.NET Desktop feedback est un projet open source. Sélectionnez un lien pour fournir des commentaires :