x:Array のマークアップ拡張機能x:Array Markup Extension

マークアップ拡張機能を XAML でのオブジェクトの配列には、一般的なサポートを提供します。Provides general support for arrays of objects in XAML through a markup extension. これに対応して、 x:ArrayExtension XAML [XAML MS] を入力します。This corresponds to the x:ArrayExtension XAML type in [MS-XAML].

XAML オブジェクト要素の使用方法XAML Object Element Usage

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

XAML 値XAML Values

typeName 型の名前をx:Arrayが含まれます。The name of the type that your x:Array will contain. typeName 可能性があります (および多くの場合は)、XAML を含む名前空間を XAML のプレフィックスとして定義を入力します。typeName may be (and often is) prefixed for a XAML namespace that contains the XAML type definitions.
arrayContents 組み込みに割り当てられている項目コンテンツArrayExtension.Itemsプロパティ。The items content that is assigned to the intrinsic ArrayExtension.Items property. 通常、これらの項目が内に含まれる 1 つまたは複数のオブジェクト要素として指定、x:Array開始タグと終了します。Typically, these items are specified as one or more object elements contained within the x:Array opening and closing tags. 指定されたオブジェクトは、ここで指定された XAML 型に代入する予想されるtypeNameします。Objects specified here are expected to be assignable to the XAML type specified in typeName.

RemarksRemarks

Type すべての必須の属性は、 x:Array object 要素。Type is a required attribute for all x:Array object elements. ATypeパラメーターの値が使用する必要はありません、x:Typeマークアップ拡張機能は、短い型の名前は、XAML 型を文字列として指定できます。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.

入力 XAML の型と CLR の出力の間の関係、.NET Framework XAML サービス実装でType作成された配列は、サービス コンテキストのマークアップ拡張機能によって影響を受けます。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. 出力Typeは、UnderlyingTypeために必要な検索した後、入力の XAML 型のXamlTypeXAML スキーマ コンテキストに基づいて、IXamlTypeResolverサービス コンテキストを提供します。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.

配列の内容に割り当てられている、処理されるときに、ArrayExtension.Items組み込みプロパティ。When processed, the array contents are assigned to the ArrayExtension.Items intrinsic property. ArrayExtension実装では、これは、表さArrayExtension.Itemsします。In the ArrayExtension implementation, this is represented by ArrayExtension.Items.

このマークアップ拡張機能の処理がによって定義されている、.NET Framework XAML サービス実装、ArrayExtensionクラス。In the .NET Framework XAML Services implementation, the handling for this markup extension is defined by the ArrayExtension class. ArrayExtension シールされていないと、カスタムの配列型のマークアップ拡張機能の実装の基礎として使用できます。ArrayExtension is not sealed, and could be used as the basis for a markup extension implementation for a custom array type.

x:Array 以上の目的の一般的な XAML の言語の機能拡張です。x:Array is more intended for general language extensibility in XAML. x:Arrayにも、構造化されたプロパティのコンテンツとして XAML でサポートされているコレクションを取得する特定のプロパティの XAML 値を指定するために役立ちます。But x:Array can also be useful for specifying XAML values of certain properties that take XAML-supported collections as their structured property content. 内容を指定するなど、IEnumerableプロパティをx:Array使用量。For example, you could specify the contents of an IEnumerable property with an x:Array usage.

x:Array はマークアップ拡張機能です。x:Array is a markup extension. 一般にマークアップ拡張機能を実装するのは、属性値をリテラル値やハンドラー名以外にエスケープする要件が存在し、その要件の適用範囲がグローバルで、特定の型やプロパティに型コンバーターを適用するだけにとどまらない場合です。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 そのルールの例外では部分的に代替の属性値の処理を提供することではなくx:Arrayその内部テキ スト コンテンツの代替の処理を提供します。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. この動作により、型を配列にグループ化とは名前付きの配列にアクセスして、後で、分離コードで参照されている既存のコンテンツ モデルでサポートされていない可能性があります。呼び出すことができますArray個々 の配列の項目を取得するメソッド。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.

中かっこを使用して、XAML 内のすべてのマークアップ拡張機能 ({,} )それぞれの属性構文では、マークアップ拡張機能が属性値を処理する必要がありますを XAML プロセッサが認識される規約。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. 一般にマークアップ拡張機能の詳細については、次を参照してください。型コンバーターと XAML のマークアップ拡張機能します。For more information about markup extensions in general, see Type Converters and Markup Extensions for XAML.

XAML 2009 でx:Arrayマークアップ拡張機能ではなくプリミティブ言語として定義されます。In XAML 2009, x:Array is defined as a language primitive instead of a markup extension. 詳細については、次を参照してください。共通の XAML 言語プリミティブの組み込み型します。For more information, see Built-in Types for Common XAML Language Primitives.

WPF の使用上の注意WPF Usage Notes

設定するオブジェクト要素では通常、x:Arrayに存在する要素のない、 WPFWPF XAML 名前空間に既定以外の XAML 名前空間プレフィックス マッピングが必要とします。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.

たとえば、2 つの文字列の単純な配列では、次のsysプレフィックス (ともx)、配列のレベルで定義します。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.

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

配列要素として使用されるカスタムの型のクラスはオブジェクト要素としての XAML でインスタンス化するための要件もサポートする必要があります。For custom types that are used as array elements, the class must also support the requirements for being instantiated in XAML as object elements. 詳細については、次を参照してください。 XAML とカスタム クラスの WPFします。For more information, see XAML and Custom Classes for WPF.

関連項目See also