x:Array-Markuperweiterungx:Array Markup Extension

Bietet allgemeine Unterstützung für Arrays von Objekten in XAML durch eine Markuperweiterung.Provides general support for arrays of objects in XAML through a markup extension. Dies entspricht der x:ArrayExtension XAML-Typ in [MS-XAML].This corresponds to the x:ArrayExtension XAML type in [MS-XAML].

Verwendung von XAML-ObjektelementenXAML Object Element Usage

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

XAML-WerteXAML Values

typeName Der Name des Typs, die Ihre x:Array enthält.The name of the type that your x:Array will contain. typeName möglicherweise (und häufig ist) mit dem Präfix für einen XAML-Namespace, die XAML enthält, Typdefinitionen.typeName may be (and often is) prefixed for a XAML namespace that contains the XAML type definitions.
arrayContents Den Elementeinhalt, die die systeminterne Funktion zugewiesen wird ArrayExtension.Items Eigenschaft.The items content that is assigned to the intrinsic ArrayExtension.Items property. Diese Elemente werden in der Regel angegeben, als eine oder mehrere Object-Elemente, die innerhalb der x:Array Start- und Endtags.Typically, these items are specified as one or more object elements contained within the x:Array opening and closing tags. Hier sollen in den angegebenen XAML-Typ zugewiesen werden Objekte des angegebenen typeName.Objects specified here are expected to be assignable to the XAML type specified in typeName.

HinweiseRemarks

Type ist ein erforderliches Attribut für alle x:Array Objektelemente.Type is a required attribute for all x:Array object elements. Ein Type Parameterwert muss nicht mit einer x:Type Markuperweiterung, die kurze Name des Typs ist ein XAML-Typ, der als Zeichenfolge angegeben werden kann.A Type parameter value does not need to use an x:Type markup extension; the short name of the type is a XAML type, which can be specified as a string.

In der Implementierung von .NET Framework-XAML-Dienste, die Beziehung zwischen der Eingabe-XAML-Typ und die Ausgabe CLR Type der das erstellte Array wird durch den Dienstkontext für Markuperweiterungen beeinflusst.In the .NET Framework XAML Services implementation, the relationship between the input XAML type and the output CLR Type of the created array is influenced by service context for markup extensions. Die Ausgabe Type ist der UnderlyingType des eingegebenen XAML-Typs, nach der Suche der erforderlichen XamlType basierend auf XAML-Schemakontext und der IXamlTypeResolver Dienst, der den Kontext bereitstellt.The output Type is the UnderlyingType of the input XAML type, after looking up the necessary XamlType based on XAML schema context and the IXamlTypeResolver service the context provides.

Bei der Verarbeitung den Inhalt des Arrays zugewiesen sind die ArrayExtension.Items systeminterne Eigenschaft.When processed, the array contents are assigned to the ArrayExtension.Items intrinsic property. In der ArrayExtension -Implementierung wird dies durch ArrayExtension.Items.In the ArrayExtension implementation, this is represented by ArrayExtension.Items.

In der .NET Framework-XAML-Dienste-Implementierung, wird die Handhabung dieser Markuperweiterung durch definiert die ArrayExtension Klasse.In the .NET Framework XAML Services implementation, the handling for this markup extension is defined by the ArrayExtension class. ArrayExtension ist nicht versiegelt und kann als Grundlage für eine Markuperweiterungsimplementierung für einen benutzerdefinierten Arraytyp verwendet werden.ArrayExtension is not sealed, and could be used as the basis for a markup extension implementation for a custom array type.

x:Array Weitere für die allgemeine spracherweiterbarkeit in XAML vorgesehen ist.x:Array is more intended for general language extensibility in XAML. Aber x:Array kann auch nützlich für die Angabe von XAML-Werte, der bestimmte Eigenschaften, die XAML-Unterstützung von Auflistungen als Eigenschaft der strukturierten Inhalt Nutzen sein.But x:Array can also be useful for specifying XAML values of certain properties that take XAML-supported collections as their structured property content. Sie könnten z. B. Angeben des Inhalts ein IEnumerable Eigenschaft mit dem ein x:Array Nutzung.For example, you could specify the contents of an IEnumerable property with an x:Array usage.

x:Array ist eine Markuperweiterung.x:Array is a markup extension. 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.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 just putting type converters on certain types or properties. x:Array ist teilweise eine Ausnahme von dieser Regel, da statt alternatives Attribut-Wert-Behandlung, x:Array alternative Behandlung von seinen inneren Text-Inhalt enthält.x:Array is partially an exception to that rule because instead of providing alternative attribute value handling, x:Array provides alternative handling of its inner text content. Dieses Verhalten ermöglicht die Typen, die von einem vorhandenen Content-Modell in einem Array gruppiert werden und später im Code-Behind verweist, auf das benannte Array nicht unterstützt werden können; Rufen Sie Array Methoden zum Abrufen der einzelnen Arrayelemente.This behavior enables types that might not be supported by an existing content model to be grouped into an array and referenced later in code-behind by accessing the named array; you can call Array methods to get individual array items.

Alle Markuperweiterungen in XAML verwenden Sie die geschweiften Klammern ({,} ) in der Attributsyntax, d.h. die Konvention, die mit dem erkennt ein XAML-Prozessor, der den Wert des Attributs eine Markuperweiterung verarbeitet werden muss.All markup extensions in XAML use the braces ({,}) in their attribute syntax, which is the convention by which a XAML processor recognizes that a markup extension must process the attribute value. Weitere Informationen über Markuperweiterungen im Allgemeinen finden Sie unter Typkonverter und Markuperweiterungen für XAML.For more information about markup extensions in general, see Type Converters and Markup Extensions for XAML.

In XAML 2009 x:Array als Sprachprimitive eine Markuperweiterung definiert ist.In XAML 2009, x:Array is defined as a language primitive instead of a markup extension. Weitere Informationen finden Sie unter integrierte Typen für häufige XAML-Sprachprimitive.For more information, see Built-in Types for Common XAML Language Primitives.

Hinweise zur WPF-VerwendungWPF Usage Notes

In der Regel der Object-Elemente, die Werte ein x:Array sind keine Elemente, die in vorhanden sind die WPFWPF XAML-Namespace und eine Präfix-Zuordnung zu einem nicht standardmäßigen XAML-Namespace erfordern.Typically, the object elements that populate an x:Array are not elements that exist in the WPFWPF XAML namespace, and require a prefix mapping to a non-default XAML namespace.

Folgendes ist beispielsweise ein einfaches Array von zwei Zeichenfolgen mit den sys Präfix (und auch x) auf der Ebene des Arrays definiert.For example, the following is a simple array of two strings, with the sys prefix (and also x) defined at the level of the array.

[xaml][xaml]

<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>

Für benutzerdefinierte Typen, die als Elemente des Arrays verwendet werden, muss die Klasse auch die Anforderungen für die in XAML instanziiert wird, die als Object-Elemente unterstützen.For custom types that are used as array elements, the class must also support the requirements for being instantiated in XAML as object elements. Weitere Informationen finden Sie unter XAML und benutzerdefinierte Klassen für WPF.For more information, see XAML and Custom Classes for WPF.

Siehe auchSee also