x:Array-Markuperweiterung

Aktualisiert: November 2007

Stellt die allgemeine Unterstützung für Objektarrays in XAML bereit.

Verwendung von XAML-Objektelementen

<object>
  <object.property>
    <x:Array Type="typeName">
      <arrayObject1/>
      <arrayObject2/>
      ...
    </x:Array>
  </object.property>
<object>

XAML-Werte

typeName

Der Name des Typs, den das x:Array enthält und der häufig ein Präfix erfordert. Siehe Hinweise.

arrayObject1, arrayObject2 usw.

Objektelemente, die den Inhalt des Arrays definieren. Siehe Hinweise.

Hinweise

Type ist ein erforderliches Attribut für alle x:Array-Objektelemente.

In der WPF-XAML-Prozessorimplementierung wird die Behandlung dieser Markuperweiterung durch die ArrayExtension-Klasse definiert. Diese Klasse ist nicht versiegelt und kann als Basis für eine Markuperweiterung-Implementierung für einen benutzerdefinierten Arraytyp verwendet werden.

x:Array ist mehr für die allgemeine Spracherweiterbarkeit in XAML bestimmt. x:Array kann jedoch auch nützlich sein, um mithilfe von XAML bestimmte Eigenschaften aufzufüllen, die als strukturierten Eigenschafteninhalt allgemeine Auflistungsunterstützungs-Schnittstellen oder -Klassen verwenden, z. B. IEnumerable.

Normalerweise handelt es sich bei den Objektelementen, die ein x:Array auffüllen, nicht um Elemente, die im WPF-XML-Namespace vorhanden sind. Außerdem erfordern diese Elemente eine Präfixzuordnung.

Unten folgt z. B. ein einfaches Array mit zwei Zeichenfolgen, wobei das sys-Präfix (sowie x) auf der Arrayebene definiert wird:

[xaml]

<x:Array Type="sys:String" xmlns:x=https://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>

Weitere Informationen finden Sie unter Markuperweiterungen und XAML und XAML-Namespaces und Namespacezuordnung. Die Arrayelemente müssen auch die entsprechenden Anforderungen unterstützen, damit sie in XAML als Objektelemente instanziiert werden können. Ausführliche Informationen finden Sie unter XAML und benutzerdefinierte Klassen.

x:Array ist eine Markuperweiterung. Markuperweiterungen werden in der Regel implementiert, wenn Attributwerte mit Escapezeichen versehen werden müssen, damit diese nicht als literale Werte oder als Handlernamen betrachtet werden, und diese Anforderung eher global und nicht nur durch den Einsatz von Typkonvertern für bestimmte Typen oder Eigenschaften erfüllt werden soll. x:Array stellt in gewissem Sinne eine Ausnahme dieser allgemeinen Regel dar, da x:Array keine alternative Attributwertbehandlung bereitstellt, sondern eine alternative Behandlung des inneren Textinhalts. Auf diese Weise wird Unterstützung bereitgestellt, bei der Elementklassen, die ggf. von keinem vorhandenen Inhaltsmodell unterstützt werden, in einem Array gruppiert werden können. Später kann in Code-Behind dann darauf verwiesen werden, indem auf das benannte Array zugegriffen wird und Arraymethoden aufgerufen werden, um einzelne Arrayelemente abzurufen.

Alle Markuperweiterungen in XAML verwenden die Zeichen { und } in der Attributsyntax. Dies ist die Konvention, durch die ein XAML-Prozessor erkennt, dass das Attribut von einer Markuperweiterung verarbeitet werden muss. Allgemeine Informationen zu Markuperweiterungen finden Sie unter Markuperweiterungen und XAML.

Siehe auch

Konzepte

Erstellen von Formaten und Vorlagen

Übersicht über XAML

Markuperweiterungen und XAML