Sdílet prostřednictvím


x:Array – rozšíření značek

Poskytuje obecnou podporu polí objektů v XAML prostřednictvím rozšíření značek. Odpovídá x:ArrayExtension typu XAML v [MS-XAML].

Použití elementu objektu XAML

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

Hodnoty XAML

Hodnota Popis
typeName Název typu, který bude x:Array obsahovat. typeName může být (a často je) předponou oboru názvů XAML, který obsahuje definice typu XAML.
arrayContents Obsah položek, který je přiřazen vnitřní ArrayExtension.Items vlastnost. Tyto položky jsou obvykle určeny jako jeden nebo více prvků objektu obsažených v x:Array otevírání a zavírání značek. Očekává se, že objekty zadané zde budou možné přiřadit k typu XAML zadanému v typeName.

Poznámky

Type je povinný atribut pro všechny prvky objektu x:Array. Hodnota parametru Type nemusí používat rozšíření x:Type značek; krátký název typu je typ XAML, který lze zadat jako řetězec.

V implementaci služby .NET XAML Services je vztah mezi vstupním typem XAML a výstupním CLR Type vytvořeného pole ovlivněn kontextem služby pro rozšíření značek. Výstupní Type je UnderlyingType vstupního typu XAML po vyhledání potřebného XamlType na základě kontextu schématu XAML a služby IXamlTypeResolver poskytuje kontext.

Při zpracování se obsah pole přiřadí k vnitřní vlastnosti ArrayExtension.Items. V ArrayExtension implementaci je to reprezentováno ArrayExtension.Items.

V implementaci .NET XAML Services je zpracování tohoto rozšíření značek definováno ArrayExtension třídy. ArrayExtension není zapečetěný a lze ho použít jako základ pro implementaci rozšíření značek pro vlastní typ pole.

x:Array je vhodnější pro obecné rozšíření jazyka v JAZYCE XAML. Ale x:Array může být také užitečné pro zadání hodnot XAML určitých vlastností, které přebírají kolekce podporované XAML jako jejich obsah strukturovaných vlastností. Můžete například zadat obsah vlastnosti IEnumerable pomocí x:Array využití.

x:Array je rozšíření značek. Rozšíření značek se obvykle implementují, pokud existuje požadavek, aby hodnoty řídicích atributů byly jiné než literální hodnoty nebo názvy obslužných rutin, a požadavek je více globální než pouhé vkládání převaděčů typů na určité typy nebo vlastnosti. x:Array je částečně výjimkou tohoto pravidla, protože místo poskytování zpracování hodnot alternativních atributů poskytuje x:Array alternativní zpracování vnitřního textového obsahu. Toto chování umožňuje, aby se typy, které existující model obsahu nepodporuje, seskupily do pole a odkazovaly se později v kódu pomocí přístupu k pojmenované matici; Můžete volat Array metody pro získání jednotlivých položek pole.

Všechna rozšíření značek v XAML používají složené závorky ({,}) v syntaxi atributu, což je konvence, kterou procesor XAML rozpozná, že rozšíření značek musí zpracovat hodnotu atributu. Další informace o rozšíření značek obecně naleznete v tématu Převaděče typů a rozšíření značek pro XAML.

V XAML 2009 je x:Array definován jako primitivní jazyk místo rozšíření značek. Další informace naleznete v tématu předdefinované typy pro common XAML Language Primitives.

Poznámky k využití WPF

Elementy objektu, které naplňují x:Array, obvykle nejsou prvky, které existují v oboru názvů WPF XAML, a vyžadují mapování předpony na jiný než výchozí obor názvů XAML.

Následuje například jednoduché pole dvou řetězců s předponou sys (a také x) definovanou na úrovni pole.

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

Pro vlastní typy, které se používají jako prvky pole, třída musí také podporovat požadavky na vytvoření instance v XAML jako objektové prvky. Další informace naleznete v tématu XAML a vlastních tříd pro WPF.

Viz také