Direttiva x:Class
Configura la compilazione di markup XAML per unire classi parziali tra markup e code-behind. La classe parziale del codice viene definita in un file di codice separato in un linguaggio CLS (Common Language Specification), mentre la classe parziale di markup viene in genere creata dalla generazione di codice durante la compilazione XAML.
Utilizzo degli attributi XAML
<object x:Class="namespace.classname"...>
...
</object>
Valori XAML
Valore | Descrizione |
---|---|
namespace |
Opzionale. Specifica uno spazio dei nomi CLR contenente la classe parziale identificata da classname . Se si specifica namespace , un punto (.) separa namespace e classname . Vedere la sezione Osservazioni. |
classname |
Obbligatorio. Specifica il nome CLR della classe parziale che connette il codice XAML caricato e il code-behind per quel codice XAML. |
Dipendenze
x:Class
può essere specificato solo sull'elemento radice di una produzione XAML.
x:Class
non è valido per qualsiasi oggetto che abbia un elemento padre nell'ambiente di produzione XAML. Per altre informazioni, vedere [MS-XAML] Sezione 6.3.1.6.
Osservazioni
Il valore namespace
può contenere punti aggiuntivi per organizzare gli spazi dei nomi correlati nelle gerarchie dei nomi, una tecnica comune nella programmazione .NET. Solo l'ultimo punto di una stringa di valori di x:Class
viene interpretato in modo da separare namespace
e classname.
La classe utilizzata come x:Class
non può essere una classe annidata. Le classi annidate non sono consentite perché determinare il significato dei punti per le stringhe x:Class
è ambiguo se sono consentite classi annidate.
Nei modelli di programmazione esistenti che usano x:Class
, x:Class
è facoltativo nel senso che è completamente valido avere una pagina XAML senza code-behind. Tuttavia, tale funzionalità interagisce con le azioni di compilazione implementate dai framework che usano XAML.
x:Class
funzionalità è influenzata anche dai ruoli che varie classificazioni di contenuto specificato da XAML hanno in un modello di applicazione e nelle azioni di compilazione corrispondenti. Se il codice XAML dichiara valori di attributo di gestione degli eventi o crea un'istanza di elementi personalizzati in cui le classi di definizione si trovano nella classe code-behind, devi fornire il riferimento alla direttiva x:Class
(o x:Subclass) alla classe appropriata per il code-behind.
Il valore della direttiva x:Class
deve essere una stringa che specifica il nome completo di una classe, ma senza informazioni sull'assembly (equivalente al Type.FullName). Per le applicazioni semplici, è possibile omettere le informazioni sullo spazio dei nomi CLR se il code-behind è strutturato anche in questo modo (la definizione del codice inizia a livello di classe).
Il file code-behind per una pagina o una definizione dell'applicazione deve trovarsi all'interno di un file di codice incluso come parte del progetto che produce un'applicazione compilata e comporta la compilazione del markup. È necessario seguire le regole dei nomi per le classi CLR. Per altre informazioni, vedere linee guida per la progettazione di framework. Per impostazione predefinita, la classe code-behind deve essere public
; Tuttavia, è possibile definirla a un livello di accesso diverso usando la direttiva x:ClassModifier .
Questa interpretazione dell'attributo x:Class
si applica solo a un'implementazione XAML basata su CLR, in particolare ai servizi XAML .NET. Altre implementazioni XAML non basate su CLR e che non usano i servizi XAML .NET potrebbero usare una formula di risoluzione diversa per connettere il markup XAML e il codice di runtime di backup. Per altre informazioni sulle interpretazioni più generali di x:Class
, vedere [MS-XAML].
A un certo livello di architettura, il significato di x:Class
non è definito nei servizi XAML .NET. Ciò è dovuto al fatto che i servizi XAML .NET non specificano il modello di programmazione in base al quale sono connessi markup XAML e codice di backup. Altri usi della direttiva x:Class
potrebbero essere implementati da framework specifici che usano modelli di programmazione o modelli di applicazione per definire come connettere markup XAML e code-behind basato su CLR. Ogni framework può avere le proprie azioni di compilazione che consentono alcuni dei comportamenti o componenti specifici che devono essere inclusi nell'ambiente di compilazione. All'interno di un framework, le azioni di compilazione possono variare anche a seconda del linguaggio CLR specifico usato per il code-behind.
x:Class nel modello di programmazione WPF
Nelle applicazioni WPF e nel modello di applicazione WPF, x:Class
può essere dichiarato come attributo per qualsiasi elemento che è la radice di un file XAML e viene compilato (dove XAML è incluso in un progetto di applicazione WPF con Page
azione di compilazione) o per la radice Application nella definizione dell'applicazione di un'applicazione WPF compilata. Dichiarando x:Class
in un elemento diverso da una radice di pagina o da una radice dell'applicazione o in un file XAML WPF non compilato, genera un errore in fase di compilazione nel compilatore XAML XAML .NET Framework 3.0 e .NET Framework 3.5 WPF. Per informazioni su altri aspetti della gestione di x:Class
in WPF, vedere Code-Behind e XAML in WPF.
x:Class per Windows Workflow Foundation
Per Windows Workflow Foundation, x:Class
denominare la classe di un'attività personalizzata composta interamente in XAML o denominare la classe parziale della pagina XAML per un ActivityDesigner con code-behind.
Note sull'utilizzo di Silverlight
x:Class
per Silverlight è documentato separatamente. Per altre informazioni, vedere spazio dei nomi XAML (x:) Language Features (Silverlight).
Vedere anche
.NET Desktop feedback