Поделиться через


Расширение разметки 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.

См. также

Основные понятия

Стилизация и использование шаблонов

Общие сведения о XAML

Расширения разметки и XAML