x:Array 標記延伸
透過標記延伸,提供 XAML 中對象的陣列一般支援。 這會對應至 [MS-XAML] 中 x:ArrayExtension
XAML 類型。
XAML 物件專案使用方式
<x:Array Type="typeName">
arrayContents
</x:Array>
XAML 值
價值 | 描述 |
---|---|
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 是輸入 XAML 類型的 UnderlyingType,在根據 XAML 架構內容和內容所提供的 IXamlTypeResolver 服務來查閱必要的 XamlType 之後。
處理時,會將數位內容指派給 ArrayExtension.Items
內部屬性。 在 ArrayExtension 實作中,這會以 ArrayExtension.Items表示。
在 .NET XAML 服務實作中,這個標記延伸的處理是由 ArrayExtension 類別所定義。 ArrayExtension 未密封,而且可作為自定義數位類型的標記延伸實作的基礎。
x:Array
更適用於 XAML 中的一般語言擴充性。 但是,x:Array
也可用於指定特定屬性的 XAML 值,以 XAML 支援的集合做為其結構化屬性內容。 例如,您可以使用 x:Array
用法來指定 IEnumerable 屬性的內容。
x:Array
是標記延伸。 當需要逸出屬性值而非常值或處理程式名稱時,通常會實作標記延伸,而且需求比將型別轉換子放在特定類型或屬性上更全域。
x:Array
是該規則的部分例外狀況,因為與其提供替代屬性值處理,x:Array
提供其內部文字內容的替代處理。 此行為可讓現有內容模型可能不支援的類型分組為陣列,並在稍後透過存取具名陣列的程式代碼後置中參考;您可以呼叫 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 和自定義類別。
另請參閱
- 標記延伸和 WPF XAML
- 從 WPF 移轉至 System.Xaml 的
類型