Расширение разметки x:Array
Обновлен: Ноябрь 2007
Предоставляет общую поддержку для массивов объектов в 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.
В реализации процессора XAML WPF обработка данного расширения разметки определяется классом ArrayExtension. Этот класс не запечатан и может использоваться в качестве основы для реализации расширения разметки для пользовательского типа массива.
x:Array предназначен скорее для общего расширения языка в XAML. Однако x:Array может быть также полезен для заполнения некоторых свойств с помощью XAML, принимающего общие интерфейсы поддержки коллекции или классы в качестве их структурированного содержимого свойств, например, как IEnumerable.
Как правило, объектные элементы, заполняющие x:Array, не являются элементами, существующими в пространстве имен XML WPF, и для них требуется сопоставление префиксов.
Например, ниже приведен простой массив из двух строк с префиксом 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 является расширением разметки. Расширения разметки обычно реализуются при наличии требования отказа от значений атрибутов, которые должны отличаться от литералов или имен обработчиков, и это требование является более глобальным, чем просто добавление определенных типов, свойств или преобразователей типов. x:Array является в своем роде исключением из этого общего правила, поскольку вместо обеспечения альтернативной обработки значения атрибута x:Array обеспечивает альтернативную обработку его внутреннего текстового содержимого. Это обеспечивает поддержку таким образом, что классы элементов, которые могут не поддерживаться всеми существующими моделями содержимого, могут быть сгруппированы в массив и на них можно ссылаться в дальнейшем в коде программной части при помощи доступа к именованным массивам и вызова методов массива для получения отдельных элементов массива.
Все расширения разметки в XAML используют символы { and } в синтаксисе их атрибутов, который является соглашением, по которому процессор XAML распознает, что расширение разметки должно обработать атрибут. Сведения о расширениях разметки содержатся в разделе Расширения разметки и XAML.