x:Array — Rozszerzenie znaczników
Zapewnia ogólną obsługę tablic obiektów w języku XAML za pośrednictwem rozszerzenia znaczników. Odpowiada to typowi x:ArrayExtension
XAML [MS-XAML].
Użycie elementu obiektu języka XAML
<x:Array Type="typeName">
arrayContents
</x:Array>
Wartości XAML
Wartość | Opis |
---|---|
typeName |
Nazwa typu, który x:Array będzie zawierać. typeName może być (i często) prefiksem dla przestrzeni nazw XAML zawierającej definicje typów XAML. |
arrayContents |
Zawartość elementów przypisana do właściwości wewnętrznej ArrayExtension.Items . Zazwyczaj te elementy są określane jako jeden lub więcej elementów obiektu zawartych w tagach otwierania x:Array i zamykania. Obiekty określone w tym miejscu powinny być przypisywane do typu XAML określonego w pliku typeName . |
Uwagi
Type
jest atrybutem wymaganym dla wszystkich x:Array
elementów obiektu. Type
Wartość parametru nie musi używać x:Type
rozszerzenia znaczników; krótka nazwa typu jest typem XAML, który można określić jako ciąg.
W implementacji usług XAML platformy .NET relacja między typem wejściowym XAML a wyjściowym clR Type utworzonej tablicy ma wpływ na kontekst usługi dla rozszerzeń znaczników. Dane wyjściowe Type są UnderlyingType danymi wejściowymi typu XAML, po wyszukaniu niezbędnego XamlType kontekstu schematu XAML i usłudze IXamlTypeResolver , która zapewnia kontekst.
Podczas przetwarzania zawartość tablicy jest przypisywana ArrayExtension.Items
do właściwości wewnętrznej. W implementacji ArrayExtension jest to reprezentowane przez ArrayExtension.Itemselement .
W implementacji usług XAML platformy .NET obsługa tego rozszerzenia znaczników jest definiowana przez klasę ArrayExtension . ArrayExtension nie jest zapieczętowany i może służyć jako podstawa implementacji rozszerzenia znaczników dla niestandardowego typu tablicy.
x:Array
jest bardziej przeznaczona do rozszerzalności języka ogólnego w języku XAML. Ale x:Array
może być również przydatne do określania wartości XAML niektórych właściwości, które przyjmują kolekcje obsługiwane przez XAML jako zawartość właściwości ustrukturyzowanych. Można na przykład określić zawartość IEnumerable właściwości przy x:Array
użyciu.
x:Array
to rozszerzenie znaczników. Rozszerzenia znaczników są zazwyczaj implementowane w sytuacji, gdy istnieje wymóg, aby wartości atrybutów były wyprowadzane w postaci innej niż wartości literałów lub nazwy programów obsługi, a wymóg ma charakter bardziej globalny niż zwykłe umieszczenie konwerterów typów w niektórych typach lub właściwościach. x:Array
jest częściowo wyjątkiem od tej reguły, ponieważ zamiast zapewniania alternatywnej obsługi wartości atrybutów, x:Array
zapewnia alternatywną obsługę jego wewnętrznej zawartości tekstowej. To zachowanie umożliwia grupowanie typów, które mogą nie być obsługiwane przez istniejącą grupę con tryb namiotu l w tablicy i przywoływane później w kodzie przez uzyskanie dostępu do nazwanej tablicy. Można wywołać Array metody pobierania poszczególnych elementów tablicy.
Wszystkie rozszerzenia znaczników w języku XAML używają nawiasów klamrowych ({,})
w ich składni atrybutu, czyli konwencji, za pomocą której procesor XAML rozpoznaje, że rozszerzenie znaczników musi przetworzyć wartość atrybutu. Aby uzyskać więcej informacji na temat rozszerzeń znaczników w ogóle, zobacz Konwertery typów i Rozszerzenia znaczników dla języka XAML.
W języku XAML 2009 x:Array
jest definiowany jako język pierwotny zamiast rozszerzenia znaczników. Aby uzyskać więcej informacji, zobacz Wbudowane typy dla typowych typów pierwotnych języka XAML.
Uwagi dotyczące użycia platformy WPF
Zazwyczaj elementy obiektu, które wypełniają x:Array
element, nie są elementami, które istnieją w przestrzeni nazw WPF XAML i wymagają mapowania prefiksu na przestrzeń nazw XAML inną niż domyślna.
Na przykład poniżej znajduje się prosta tablica dwóch ciągów z prefiksem sys
(a także x
) zdefiniowanym na poziomie tablicy.
<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>
W przypadku typów niestandardowych, które są używane jako elementy tablicy, klasa musi również obsługiwać wymagania dotyczące tworzenia wystąpienia w języku XAML jako elementów obiektów. Aby uzyskać więcej informacji, zobacz Klasy XAML i niestandardowe dla WPF.
Zobacz też
.NET Desktop feedback