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.