x:Array — Rozszerzenie znaczników

Zapewnia ogólną pomoc techniczną dla tablic obiektów w języku XAML za pomocą rozszerzenia znaczników. Odnosi się to do x:ArrayExtension typu XAML w [MS-XAML].

Użycie elementu obiektu języka XAML

<x:Array Type="typeName">
  arrayContents
</x:Array>

Wartości XAML

typeName Nazwa typu, który x:Array będzie zawierać. typeName może być (i często) prefiksem przestrzeni nazw XAML, która zawiera definicje typów XAML.
arrayContents Zawartość elementów, która jest przypisana do ArrayExtension.Items Właściwości wewnętrznej. Zazwyczaj te elementy są określone jako jeden lub więcej elementów obiektów zawartych w x:Array tagach otwierających i zamykających. Obiektów określonych tutaj można przypisać do typu XAML określonego w typeName .

Uwagi

Type jest wymaganym atrybutem dla wszystkich x:Array elementów obiektu. TypeWartość 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 języka XAML platformy .NET relacja między wejściowym typem XAML i wyjściowym środowiskiem CLR dla Type utworzonej tablicy ma wpływ na kontekst usługi dla rozszerzeń znaczników. Dane wyjściowe TypeUnderlyingType typu danych wejściowych XAML, po wyszukaniu niezbędnego XamlType kontekstu schematu XAML i IXamlTypeResolver usługi udostępnianej przez kontekst.

Podczas przetwarzania zawartość tablicy jest przypisywana do ArrayExtension.Items Właściwości wewnętrznej. W ArrayExtension implementacji jest to reprezentowane przez ArrayExtension.Items .

W implementacji usług języka XAML platformy .NET obsługa tego rozszerzenia znacznika jest definiowana przez ArrayExtension klasę. ArrayExtension nie jest zapieczętowany i może służyć jako podstawa implementacji rozszerzenia znacznika dla niestandardowego typu tablicy.

x:Array jest bardziej przeznaczony do ogólnego rozszerzania języków w języku XAML. Ale x:Array mogą również być przydatne do określania wartości XAML niektórych właściwości, które pobierają kolekcje obsługiwane przez język XAML jako ich zawartość właściwości strukturalnej. Na przykład można określić zawartość IEnumerable właściwości przy użyciu x:Array .

x:Array jest rozszerzeniem 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 udostępniać alternatywną obsługę wartości atrybutów, x:Array zapewnia alternatywną obsługę swojej wewnętrznej zawartości tekstowej. Takie zachowanie włącza typy, które mogą nie być obsługiwane przez istniejący model zawartości, aby można je było grupować w tablicę i przywoływane później w kodzie przez uzyskanie dostępu do nazwanej tablicy; Możesz wywoływać Array metody, aby pobrać pojedyncze elementy tablicy.

Wszystkie rozszerzenia znaczników w języku XAML używają nawiasów klamrowych ( {,} ) w składni atrybutu, która jest konwencją, za pomocą której procesor XAML rozpoznaje, że rozszerzenie znacznika musi przetwarzać wartość atrybutu. Aby uzyskać więcej informacji na temat ogólnych rozszerzeń znaczników, zobacz Typy konwerterów i rozszerzenia znaczników dla języka XAML.

W języku XAML 2009, x:Array jest zdefiniowany jako pierwotny język zamiast rozszerzenia znacznika. Aby uzyskać więcej informacji, zobacz typy wbudowane dla wspólnych elementów podstawowych języka XAML.

Uwagi dotyczące użycia WPF

Zazwyczaj elementy obiektu, które wypełniają x:Array nie są elementami, które znajdują się w WPF przestrzeni nazw XAML, i wymagają mapowania prefiksu do przestrzeni nazw języka XAML innego niż domyślna.

Na przykład, poniżej znajduje się prosta tablica dwóch ciągów, z sys prefiksem (i również 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 wystąpienia w kodzie XAML jako elementy obiektu. Aby uzyskać więcej informacji, zobacz XAML i klasy niestandardowe dla WPF.

Zobacz też