x:Array 標記延伸
更新:2007 年 11 月
提供對 XAML 中物件陣列的一般支援。
XAML 物件項目使用方式
<object>
<object.property>
<x:Array Type="typeName">
<arrayObject1/>
<arrayObject2/>
...
</x:Array>
</object.property>
<object>
XAML 值
typeName |
x:Array 將包含的型別名稱,通常需要前置字元。請參閱註解。 |
arrayObject1、arrayObject2 等等 |
定義陣列內容的物件項目。請參閱「備註」。 |
備註
Type 是所有 x:Array 物件項目的必要屬性。
在 WPF XAML 處理器實作中,這個標記延伸的處理是由 ArrayExtension 類別定義的。這個類別不是密封的,可以用來做為自訂陣列型別的標記延伸實作基礎。
x:Array 的設計目的比較針對 XAML 中的一般語言擴充性。但是,當使用 XAML 填入的某些屬性會採用一般的集合支援介面或類別做為結構化屬性內容 (例如做為 IEnumerable) 時,x:Array 也很有用。
通常,填入 x:Array 的物件項目,並不是 WPF XML 命名空間中存在的項目,所以需要有前置字元對應。
舉例來說,下列簡單陣列具有兩個字串,並在陣列層級定義有 sys 前置字元 (以及 x):
[xaml]
<x:Array Type="sys:String" xmlns:x=https://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 和 XAML 命名空間和命名空間對應。陣列元素也必須支援用於在 XAML 中具現化為物件項目的需求。如需詳細資訊,請參閱 XAML 和自訂類別。
x:Array 是一種標記延伸。標記延伸通常的實作時機如下:需要將屬性 (Attribute) 值逸出為常值或處理常式名稱以外的值時,而且該需要比單純在某些型別和屬性 (Property) 上放置型別轉換子 (Type Converter) 還要廣泛時。而 x:Array 在某些程度上是該一般規則的例外狀況,因為 x:Array 會改為提供內部文字內容的替代處理,而非提供替代的屬性 (Attribute) 值處理。這樣提供的支援,對於任何現有內容模型可能不支援的項目類別來說,就可以群組成為陣列,並可以藉由存取具名陣列和呼叫陣列方法以取得個別陣列項目,而得於稍後在程式碼後置 (Code-Behind) 中參考。
所有 XAML 標記延伸都會在其屬性 (Attribute) 語法中使用 { 與 } 字元,這個慣例讓 XAML 處理器知道某個標記延伸必須處理這個屬性 (Attribute)。如需一般標記延伸的詳細資訊,請參閱標記延伸和 XAML。