Udostępnij za pośrednictwem


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 TypeUnderlyingType 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ż