Estensione del markup x:Array

Fornisce supporto generale per matrici di oggetti in XAML, tramite una gestione delle estensioni di markup. Corrisponde al tipo XAML x:ArrayExtension in [MS-XAML].

Utilizzo della sintassi XAML per gli elementi oggetto

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

Valori XAML

typeName

Nome del tipo che conterrà x:Array. È possibile che typeName siano premessi (spesso è così) per uno spazio dei nomi XAML che contiene le definizioni del tipo XAML.

arrayContents

Contenuto degli elementi assegnato alla proprietà ArrayExtension.Items intrinseca. In genere, questi elementi vengono specificati come uno o più elementi oggetto contenuti all'interno di x:Array che aprono e chiudono tag. Gli oggetti qui specificati saranno probabilmente assegnabili al tipo XAML specificato in typeName.

Note

L'oggetto Type è un attributo necessario per tutti gli elementi oggetto x:Array. Valore di parametro Type non deve utilizzare un'estensione di markup x:Type; il nome breve del tipo è un tipo XAML, che può essere specificato come stringa.

Nell'implementazione dei servizi XAML di .NET Framework, la relazione tra il tipo XAML di input e il CLR di output Type della matrice creata è influenzata dal contesto di servizio delle estensioni di markup. L'output Type è il UnderlyingType del tipo XAML dell'input, dopo avere cercato il XamlType necessario in base al contesto dello schema XAML e al servizio IXamlTypeResolver fornito dal contesto.

In caso di elaborazione, i contenuti della matrice sono assegnati alla proprietà intrinseca ArrayExtension.Items. Nell'implementazione ArrayExtension, viene da rappresentato ArrayExtension.Items.

Nell'implementazione dei servizi XAML di .NET Framework la gestione di questa estensione di markup viene definita dalla classe ArrayExtension. ArrayExtension non è sealed e potrebbe essere utilizzata come base per l'implementazione di un'estensione di markup per un tipo di matrice personalizzato.

x:Array è prevalentemente destinato all'estensibilità del linguaggio generale in XAML. Tuttavia, x:Array può essere utile anche per specificare valori XAML di determinate proprietà mediante raccolte supportate in XAML come contenuto strutturato della proprietà. Ad esempio, è possibile specificare il contenuto di una proprietà IEnumerable con un utilizzo x:Array.

x:Array è un'estensione di markup. Le estensioni di markup in genere vengono implementate quando per i valori dell'attributo devono essere utilizzati caratteri escape in modo che non vengano considerati come valori letterali o nomi di gestori e il requisito è più globale del semplice utilizzo di convertitori dei tipi su alcuni tipi o proprietà. x:Array è parzialmente un'eccezione a quella regola, perché anziché fornire una gestione del valore dell'attributo alternativa, x:Array fornisce una gestione alternativa del contenuto di testo interno. In tal modo i tipi che potrebbero non essere supportati da alcun modello di contenuto esistente possono essere raggruppati in una matrice e utilizzati come riferimento in un secondo momento all'interno del code-behind mediante l'accesso alla matrice denominata e la chiamata ai metodi Array per ottenere singoli elementi della matrice.

Per tutte le estensioni di markup in XAML vengono utilizzate le parentesi graffe ({,}) nella relativa sintassi degli attributi, vale a dire la convenzione in base alla quale il processore XAML riconosce che l'attributo deve essere elaborato da un'estensione di markup. Per informazioni dettagliate sulle estensioni di markup, vedere Convertitori di tipi ed estensioni di markup per XAML.

In XAML 2009, x:Array è definito come un tipo primitivo del linguaggio piuttosto che come un'estensione di markup. Per ulteriori informazioni, vedere Tipi incorporati per primitive del linguaggio XAML comuni.

Note sull'utilizzo di WPF

Generalmente, gli elementi oggetto che popolano un oggetto x:Array in genere non sono elementi che esistono nello spazio dei nomi XAML di WPF e richiedono un mapping del prefisso allo spazio dei nomi XAML non predefinito.

Ad esempio, gli elementi seguenti sono una semplice matrice di due stringhe, con il prefisso sys (nonché x) definito a livello della matrice.

[xaml]

<x:Array Type="sys:String" xmlns:x="https://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>

Per i tipi personalizzati utilizzati come elementi matrice, la classe deve inoltre supportare i requisiti che ne consentono la creazione di istanze in XAML come elementi oggetto. Per ulteriori informazioni, vedere Classi XAML e personalizzate per WPF.

Vedere anche

Concetti

Estensioni di markup e XAML WPF

Altre risorse

Tipi migrati da WPF a System.Xaml