x:Klassdirektiv
Konfigurerar XAML-markeringskompilering för att koppla partiella klasser mellan markering och bakomliggande kod. Kodens partiella klass definieras i en separat kodfil i ett CLS-språk (Common Language Specification), medan den partiella påläggsklassen vanligtvis skapas av kodgenerering under XAML-kompileringen.
XAML-attributanvändning
<object x:Class="namespace.classname"...>
...
</object>
XAML-värden
Värde | Beskrivning |
---|---|
namespace |
Valfri. Anger ett CLR-namnområde som innehåller den partiella klass som identifieras av classname . Om namespace anges separerar en punkt (.) namespace och classname . Se Kommentarer. |
classname |
Krävs. Anger CLR-namnet på den partiella klass som ansluter den inlästa XAML:en och din bakomliggande kod för XAML. |
Beroenden
x:Class
kan bara anges på rotelementet i en XAML-produktion.
x:Class
är ogiltigt för alla objekt som har ett överordnat objekt i XAML-produktionen. Mer information finns i [MS-XAML] Avsnitt 6.3.1.6.
Anmärkningar
Värdet namespace
kan innehålla ytterligare punkter för att ordna relaterade namnområden i namnhierarkier, vilket är en vanlig teknik inom .NET-programmering. Endast den sista punkten i en sträng med x:Class
värden tolkas för att avgränsa namespace
och classname.
Klassen som används som x:Class
får inte vara en kapslad klass. Kapslade klasser tillåts inte eftersom det är tvetydigt att fastställa innebörden av punkter för x:Class
strängar om kapslade klasser tillåts.
I befintliga programmeringsmodeller som använder x:Class
är x:Class
valfritt i den meningen att det är helt giltigt att ha en XAML-sida som inte har någon bakomliggande kod. Den funktionen interagerar dock med byggåtgärderna som implementeras av ramverk som använder XAML.
x:Class
funktionen påverkas också av de roller som olika klassificeringar av XAML-angivet innehåll har i en programmodell och i motsvarande byggåtgärder. Om din XAML deklarerar attributvärden för händelsehantering eller instansierar anpassade element där de definierande klasserna finns i klassen code-behind måste du ange referensen för x:Class
-direktivet (eller x:Subclass) till lämplig klass för code-behind.
Värdet för x:Class
-direktivet måste vara en sträng som anger det fullständigt kvalificerade namnet på en klass men utan någon sammansättningsinformation (motsvarande Type.FullName). För enkla program kan du utelämna CLR-namnområdesinformation om koden bakom också är strukturerad på det sättet (koddefinitionen börjar på klassnivå).
Koden bakom filen för en sida eller programdefinition måste finnas i en kodfil som ingår som en del av projektet som skapar ett kompilerat program och som omfattar markeringskompilering. Du måste följa namnregler för CLR-klasser. Mer information finns i Framework Design Guidelines. Som standard måste klassen code-behind vara public
; Du kan dock definiera den på en annan åtkomstnivå med hjälp av x:ClassModifier-direktivet.
Den här tolkningen av attributet x:Class
gäller endast för en CLR-baserad XAML-implementering, särskilt för .NET XAML Services. Andra XAML-implementeringar som inte baseras på CLR och som inte använder .NET XAML Services kan använda en annan lösningsformel för att ansluta XAML-markering och säkerhetskopiera körningskod. Mer information om mer allmänna tolkningar av x:Class
finns i [MS-XAML].
På en viss arkitekturnivå är innebörden av x:Class
odefinierad i .NET XAML Services. Detta beror på att .NET XAML Services inte anger den programmeringsmodell som XAML-markering och säkerhetskopieringskod är anslutna till. Ytterligare användning av x:Class
-direktivet kan implementeras av specifika ramverk som använder programmeringsmodeller eller programmodeller för att definiera hur du ansluter XAML-markering och CLR-baserad kod bakom. Varje ramverk kan ha egna byggåtgärder som möjliggör vissa av de beteenden eller specifika komponenter som måste ingå i byggmiljön. Inom ett ramverk kan byggåtgärder också variera beroende på det specifika CLR-språk som används för koden bakom.
x:Klass i WPF-programmeringsmodellen
I WPF-program och WPF-programmodellen kan x:Class
deklareras som ett attribut för alla element som är roten till en XAML-fil och som kompileras (där XAML ingår i ett WPF-programprojekt med Page
byggåtgärd) eller för Application roten i programdefinitionen för ett kompilerat WPF-program. Att deklarera x:Class
på ett annat element än en sidrot eller programrot, eller på en WPF XAML-fil som inte kompileras, orsakar ett kompileringsfel under .NET Framework 3.0 och .NET Framework 3.5 WPF XAML-kompilatorn. Information om andra aspekter av x:Class
hantering i WPF finns i Code-Behind och XAML i WPF.
x:Class för Windows Workflow Foundation
För Windows Workflow Foundation namnger x:Class
klassen för en anpassad aktivitet som helt består av XAML, eller namnger den partiella klassen på XAML-sidan för en aktivitetsdesigner med kod bakom.
Användningsanteckningar för Silverlight
x:Class
för Silverlight dokumenteras separat. Mer information finns i XAML-namnområde (x:) Language Features (Silverlight).
Se även
.NET Desktop feedback