Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Обеспечивает общую поддержку массивов объектов в XAML с помощью расширения разметки. Это соответствует типу XAML x:ArrayExtension в [MS-XAML].
Использование элемента объекта XAML
<x:Array Type="typeName">
arrayContents
</x:Array>
Значения XAML
| Ценность | Описание |
|---|---|
typeName |
Имя типа, который будет содержать x:Array.
typeName может быть (и часто является) префиксом пространства имен XAML, содержащего определения типов XAML. |
arrayContents |
Содержимое элементов, назначенное встроенному свойству ArrayExtension.Items. Как правило, эти элементы указываются как один или несколько элементов объекта, содержащихся в x:Array открывающих и закрывающих тегов. Объекты, указанные здесь, должны быть назначены типу XAML, указанному в typeName. |
Замечания
Type является обязательным атрибутом для всех элементов объекта x:Array. Значение параметра Type не требует использования расширения разметки x:Type; Короткое имя типа — это тип XAML, который можно указать как строку.
В реализации служб XAML .NET связь между входным типом XAML и выходными clR Type созданного массива зависит от контекста службы для расширений разметки. Выходные Type — это UnderlyingType входного типа XAML после поиска необходимых XamlType на основе контекста схемы XAML и службы IXamlTypeResolver, которая предоставляет контекст.
При обработке содержимое массива назначается встроенному свойству ArrayExtension.Items. В реализации ArrayExtension это представляется ArrayExtension.Items.
В реализации служб XAML .NET обработка этого расширения разметки определяется классом ArrayExtension. ArrayExtension не запечатан и может использоваться в качестве основы для реализации расширения разметки для пользовательского типа массива.
x:Array более предназначен для расширения общего языка в XAML. Но x:Array также можно использовать для указания значений XAML определенных свойств, которые принимают коллекции, поддерживаемые XAML, в качестве содержимого структурированного свойства. Например, можно указать содержимое свойства IEnumerable с использованием x:Array.
x:Array — это расширение разметки. Расширения разметки обычно реализуются, если существует требование побега значений атрибутов, отличных от литеральных значений или имен обработчиков, и требование является более глобальным, чем просто помещать преобразователи типов на определенные типы или свойства.
x:Array частично является исключением из этого правила, так как вместо предоставления альтернативной обработки значений атрибутов x:Array обеспечивает альтернативную обработку его внутреннего текстового содержимого. Это позволяет использовать типы, которые могут не поддерживаться существующей моделью содержимого, группироваться в массив и ссылаться позже в коде путем доступа к именованном массиву; можно вызвать методы Array для получения отдельных элементов массива.
Все расширения разметки в XAML используют фигурные скобки ({,}) в синтаксисе атрибутов, то есть соглашение, с помощью которого обработчик XAML распознает, что расширение разметки должно обрабатывать значение атрибута. Дополнительные сведения о расширениях разметки в целом см. в разделе Преобразователи типов и расширения разметки для XAML.
В XAML 2009 x:Array определяется как примитив языка, а не расширение разметки. Дополнительные сведения см. в встроенных типов для примитивов языка XAML.
Заметки об использовании WPF
Как правило, элементы объекта, заполняющие x:Array, не являются элементами, существующими в пространстве имен XAML WPF, и требуют сопоставления префикса с пространством имен 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 в виде элементов объекта. Дополнительные сведения см. в разделе XAML и пользовательских классов дляWPF.
См. также
- расширения разметки и XAML WPF
- Типы , перенесенные из WPF в System.Xaml
.NET Desktop feedback