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 之間的關聯性會受到標記延伸的服務內容所影響。 輸出 Type 是 UnderlyingType 輸入 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 和自訂類別。