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é
- rozšíření značek a WPF XAML
- typy migrované z WPF do System.Xaml
.NET Desktop feedback