Estensione del markup x:Type
Aggiornamento: novembre 2007
Fornisce l'oggetto Type per il tipo fornito.
Utilizzo della sintassi XAML per gli attributi
<object property="{x:Type prefix:typeNameValue}" .../>
Utilizzo della sintassi XAML per gli elementi oggetto
<object>
<object.property>
<x:Type TypeName="prefix:typeNameValue"/>
</object.property>
</object>
Valori XAML
prefix |
Facoltativo. Prefisso che esegue il mapping di uno spazio dei nomi XML non predefinito. La specifica di un prefisso spesso non è necessaria, vedere la sezione Osservazioni. |
typeNameValue |
Obbligatorio. Un nome di tipo risolvibile nello spazio dei nomi XML predefinito corrente oppure prefisso specificato del quale è stato eseguito il mapping se viene fornito il parametro prefix. |
Note
L'attributo x:Type viene utilizzato per fornire il valore di attributo per una proprietà che accetta Type. Molte proprietà che accettano Type come valore sono tuttavia in grado di accettare direttamente il nome del tipo (il valore di stringa del tipo Name). Per informazioni dettagliate consultare la documentazione relativa alla proprietà specifica. x:Type è essenzialmente un'estensione di markup equivalente per un operatore typeof() in C# oppure per l'operatore GetType (informazioni in lingua inglese) in Microsoft Visual Basic .NET.
Lo spazio dei nomi XML predefinito per una determinata pagina XAML viene definito come attributo nell'elemento radice. Di solito lo spazio dei nomi XML predefinito utilizzato per la programmazione Windows Presentation Foundation (WPF) è lo spazio dei nomi WPF. L'identificatore di tale spazio dei nomi è https://schemas.microsoft.com/winfx/2006/xaml/presentation. La maggioranza dei tipi per la programmazione di applicazioni WPF comuni si trova all'interno di questo spazio dei nomi. Pertanto, in genere non è necessario eseguire il mapping di un prefisso per ottenere un tipo quando si utilizza l'attributo x:Type. È possibile che sia necessario eseguire il mapping di un prefisso se si fa riferimento a un tipo da un assembly personalizzato oppure per i tipi che esistono in un assembly WPF ma si trovano all'interno di uno spazio dei nomi CLR per il quale non è stato eseguito il mapping nell'ambito dello spazio dei nomi WPF da tale assembly. Per informazioni su prefissi, spazi dei nomi XML e mapping degli spazi degli spazi dei nomi CLR, vedere Spazi dei nomi XAML e mapping dello spazio dei nomi.
La sintassi per gli attributi è quella più comunemente utilizzata con questa estensione di markup. Il token di stringa fornito dopo la stringa dell'identificatore x:Type viene assegnato come valore TypeName della classe dell'estensione TypeExtension sottostante. Il valore di questo attributo è Name del tipo desiderato.
L'oggetto x:Type può essere utilizzato nella sintassi per gli elementi oggetto. In questo caso, è richiesta la specifica del valore della proprietà TypeName per inizializzare correttamente l'estensione.
L'oggetto x:Type può anche essere adoperato per un uso dettagliato degli attributi che consente di specificare la proprietà TypeName come coppia proprietà=valore:
<object property="{x:Type TypeName=typeNameValue}" .../>
L'utilizzo dettagliato spesso è utile per le estensioni con più proprietà da impostare o nel caso in cui alcune proprietà siano facoltative. Poiché x:Type presenta una sola proprietà da impostare, obbligatoria, l'utilizzo dettagliato non è tipico.
Nell'implementazione del processore XAML WPF, la gestione di questa estensione di markup viene definita dalla classe TypeExtension.
x:Type è un'estensione di markup. Le estensioni di markup in genere vengono implementate quando i valori dell'attributo dei caratteri escape non devono essere valori letterali o nomi di gestori e questo requisito è più globale del semplice utilizzo di convertitori dei tipi su alcuni tipi o proprietà. Tutte le estensioni di markup di XAML utilizzano i caratteri { e } nella relativa sintassi degli attributi. Grazie a questa convenzione il processore XAML è in grado di rilevare la necessità che l'attributo venga elaborato da un'estensione di markup. Per ulteriori informazioni, vedere Estensioni di markup e XAML.
Vedere anche
Concetti
Applicazione di stili e modelli