Dela via


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:Classfinns 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