x:Array 標記延伸

透過標記延伸,提供 XAML 中物件的陣列一般支援。 這會對應至 x:ArrayExtension [MS-XAML] 中的 XAML 類型。

XAML 物件項目用法

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

XAML 值

Description
typeName 您將包含的類型 x:Array 名稱。 typeName 可能為包含 XAML 類型定義的 XAML 命名空間前置詞(且通常為 )。
arrayContents 指派給內建 ArrayExtension.Items 屬性的專案內容。 一般而言,這些專案會指定為開頭和結束記號中包含的 x:Array 一或多個物件專案。 此處指定的物件應該可指派給 中指定的 typeName XAML 類型。

備註

Type 是所有 x:Array 物件專案的必要屬性。 Type參數值不需要使用 x:Type 標記延伸;型別的簡短名稱是 XAML 類型,可以指定為字串。

在 .NET XAML 服務實作中,輸入 XAML 類型和所建立陣列的輸出 CLR Type 之間的關聯性會受到標記延伸的服務內容所影響。 輸出 TypeUnderlyingType 輸入 XAML 類型的 ,在根據 XAML 架構內容 IXamlTypeResolver 和內容所提供的服務來查閱必要 XamlType 專案之後。

處理時,會將陣列內容指派給 ArrayExtension.Items 內部屬性。 在 實作中 ArrayExtension ,這會以 ArrayExtension.Items 表示。

在 .NET XAML 服務實作中,這個標記延伸的處理是由 ArrayExtension 類別所定義。 ArrayExtension 未密封,而且可作為自訂陣列類型的標記延伸實作的基礎。

x:Array 更適用于 XAML 中的一般語言擴充性。 但也 x:Array 可用於指定特定屬性的 XAML 值,這些屬性採用 XAML 支援的集合做為其結構化屬性內容。 例如,您可以使用 來指定屬性 x:Array 的內容 IEnumerable

x:Array 是一種標記延伸。 如果必須將屬性 (Attribute) 值加上逸出符號,以免成為常值或處理常式名稱,而且這個動作必須更全面地實施 (而不是只對特定類型或屬性 (Property) 設定類型轉換子 (Type Converter)),則通常會實作標記延伸。 x:Array 是該規則的部分例外狀況,因為不是提供替代屬性值處理, x:Array 而是提供其內部文字內容的替代處理。 此行為可讓現有 con帳篷模式l 可能不支援的類型分組為數組,並在程式碼後置中藉由存取具名陣列來參考;您可以呼叫 Array 方法來取得個別陣列專案。

XAML 中的所有標記延伸都會使用大括弧 ( {,}) 在其屬性語法中,這是 XAML 處理器辨識標記延伸必須處理屬性值的慣例。 如需一般標記延伸的詳細資訊,請參閱 XAML 的型別轉換器和標記延伸。

在 XAML 2009 中, x:Array 定義為語言基本類型,而不是標記延伸。 如需詳細資訊,請參閱 Common XAML Language Primitives 的內建類型。

WPF 使用方式注意事項

一般而言,填入 x:Array 的物件專案不是存在於 WPF XAML 命名空間中的專案,而且需要前置詞對應至非預設的 XAML 命名空間。

例如,下列是兩個字串的簡單陣列,其 sys 前置詞 (以及 x ) 定義于陣列層級。

<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 中具現化為物件元素的需求。 如需詳細資訊,請參閱 WPF 的 XAML 和自訂類別。

另請參閱