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.

Uso della sintassi XAML per gli attributi

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

Valori XAML

Valore Descrizione
namespace (Facoltativo). Specifica uno spazio dei nomi CLR che contiene la classe parziale identificata da classname. Se namespace viene specificato, 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 nell'elemento radice di una produzione XAML. x:Class non è valido per qualsiasi oggetto che ha un elemento padre nell'ambiente di produzione XAML. Per altre informazioni, vedere [MS-XAML] Sezione 6.3.1.6.

Osservazioni

Il namespace valore 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 in una stringa di x:Class valori viene interpretato come separato namespace e classname. La classe usata come x:Class non può essere una classe nidificata. Le classi annidate non sono consentite perché la determinazione del significato dei punti per x:Class le stringhe è ambigua 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 la 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 i valori degli attributi 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 x:Class riferimento alla direttiva (o x:Subclass) alla classe appropriata per code-behind.

Il valore della x:Class direttiva deve essere una stringa che specifica il nome completo di una classe, ma senza informazioni sull'assembly Type.FullName(equivalente a ). 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 del framework. Per impostazione predefinita, la classe code-behind deve essere public, ma è 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 è indefinito 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 x:Class direttiva possono essere implementati da framework specifici che usano modelli di programmazione o modelli di applicazione per definire come connettere il markup XAML e il 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 x:Class di applicazione WPF 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 Application radice 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, viene generato un errore in fase di compilazione nel compilatore XAML WPF di .NET Framework 3.0 e .NET Framework 3.5. Per informazioni su altri aspetti della x:Class gestione in WPF, vedere Code-Behind e XAML in WPF.

x:Class per Windows Workflow Foundation

Per Windows Workflow Foundation, x:Class denomina la classe di un'attività personalizzata composta interamente in XAML o assegna un nome alla 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 Funzionalità del linguaggio dello spazio dei nomi XAML (x:) (Silverlight).

Vedi anche