Condividi tramite


Attributo x:Subclass

Aggiornamento: novembre 2007

Modifica il comportamento della compilazione XAML nei casi in cui viene fornito anche l'oggetto x:Class. In modo specifico, anziché creare una classe parziale basata sulla classe della pagina, l'oggetto x:Classfornito viene creato come classe intermedia, pertanto si prevede che la classe derivata si basi sull'attributo x:Class.

Utilizzo della sintassi XAML per gli attributi

<object x:Class="namespace.classname" x:Subclass="subclassNamespace.subclassName">
   ...
</object>

Valori XAML

namespace

Facoltativo. Specifica uno spazio dei nomi CLR che contiene l'oggetto classname. Se l'oggetto namespace viene specificato, un punto (.) separa namespace e classname.

classname

Obbligatorio. Specifica il nome CLR della classe parziale che connette la sintassi XAML caricata e il code-behind per quella sintassi XAML. Vedere la sezione Osservazioni.

subclassNamespace

Facoltativo. Può essere diverso da namespace purché ciascuno spazio dei nomi sia in grado di risolvere l'altro. Specifica uno spazio dei nomi CLR che contiene l'oggetto subclassName. Se l'oggetto subclassName viene specificato, un punto (.) separa subclassNamespace e subclassName.

subclassName

Obbligatorio. Specifica il nome CLR della sottoclasse.

Dipendenze

L'oggetto Attributo x:Class deve inoltre essere disponibile sullo stesso elemento, che deve essere l'elemento radice di una pagina.

Note

L'utilizzo dell'attributo x:Subclass è destinato principalmente ai linguaggi che non supportano dichiarazioni di classe parziali.

L'attributo x:Subclass può essere dichiarato per qualsiasi elemento che rappresenti la radice di una pagina Extensible Application Markup Language (XAML) e/o per la radice Application nella definizione dell'applicazione che dispone già dell'attributo x:Class. La dichiarazione dell'attributo x:Subclass in un elemento diverso dalla radice di una pagina o di un'applicazione oppure la specifica di questo attributo in assenza di un attributo x:Class comporterà un errore in fase di compilazione.

La creazione di classi derivate che funzionano correttamente per lo scenario x:Subclass è abbastanza complessa. Potrebbe essere necessario esaminare i file intermedi (vale a dire i file g prodotti nella cartella obj del progetto, con nomi che incorporano i nomi file xaml). Questi file intermedi possono consentire di determinare l'origine di specifici costrutti di programmazione nelle classi parziali associate all'interno dell'applicazione compilata.

La classe utilizzata come oggetto x:Subclass non può essere una classe nidificata.

I gestori eventi nella classe derivata devono essere internal override (Friend Overrides in Microsoft Visual Basic .NET) per eseguire l'override degli stub per i gestori creati nella classe intermedia durante la compilazione. In caso contrario, le implementazioni della classe derivata nascondono l'implementazione della classe intermedia e non è possibile richiamare i gestori della classe intermedia.

Quando si definiscono gli oggetti x:Class e x:Subclass , non è necessario fornire alcuna implementazione per la classe a cui fa riferimento l'oggetto x:Class. È sufficiente denominare la classe mediante l'attributo x:Class, in modo che il compilatore disponga di istruzioni per la classe che crea nei file intermedi (il compilatore non sceglie un nome predefinito in questo caso). Se si desidera, è possibile fornire un'implementazione alla classe x:Class, tuttavia questa operazione non fa parte dello scenario tipico dell'utilizzo combinato di x:Class e x:Subclass.

Vedere anche

Concetti

XAML e classi personalizzate

Riferimenti

Attributo x:Class