Partager via


x :Class, directive

Configure la compilation de balisage XAML pour joindre des classes partielles entre le balisage et le code-behind. La classe partielle de code est définie dans un fichier de code distinct dans un langage CLS (Common Language Specification), tandis que la classe partielle de balisage est généralement créée par la génération de code pendant la compilation XAML.

Utilisation des attributs XAML

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

Valeurs XAML

Valeur Description
namespace Optionnel. Spécifie un espace de noms CLR qui contient la classe partielle identifiée par classname. Si namespace est spécifié, un point (.) sépare namespace et classname. Voir les remarques.
classname Obligatoire. Spécifie le nom CLR de la classe partielle qui connecte le code XAML chargé et votre code-behind pour ce code XAML.

Dépendances

x:Class ne peut être spécifié que sur l’élément racine d’une production XAML. x:Class n’est pas valide sur tout objet qui a un parent dans la production XAML. Pour plus d’informations, consultez [MS-XAML] Section 6.3.1.6.

Remarques

La valeur namespace peut contenir des points supplémentaires pour organiser les espaces de noms associés en hiérarchies de noms, qui est une technique courante dans la programmation .NET. Seul le dernier point d’une chaîne de valeurs x:Class est interprété pour séparer namespace et classname. La classe utilisée comme x:Class ne peut pas être une classe imbriquée. Les classes imbriquées ne sont pas autorisées, car la détermination de la signification des points pour x:Class chaînes est ambiguë si les classes imbriquées sont autorisées.

Dans les modèles de programmation existants qui utilisent x:Class, x:Class est facultatif dans le sens où il est entièrement valide pour avoir une page XAML qui n’a pas de code-behind. Toutefois, cette fonctionnalité interagit avec les actions de génération comme implémentées par les frameworks qui utilisent XAML. x:Class fonctionnalité est également influencée par les rôles que les différentes classifications du contenu spécifié par XAML ont dans un modèle d’application et dans les actions de génération correspondantes. Si votre code XAML déclare des valeurs d’attribut de gestion des événements ou instancie des éléments personnalisés où les classes de définition se trouvent dans la classe code-behind, vous devez fournir la référence de directive x:Class (ou x :Subclass) à la classe appropriée pour code-behind.

La valeur de la directive x:Class doit être une chaîne qui spécifie le nom complet d’une classe, mais sans aucune information d’assembly (équivalente à la Type.FullName). Pour les applications simples, vous pouvez omettre les informations d’espace de noms CLR si le code-behind est également structuré de cette manière (la définition de code commence au niveau de la classe).

Le fichier code-behind d’une page ou d’une définition d’application doit se trouver dans un fichier de code inclus dans le cadre du projet qui produit une application compilée et implique la compilation de balisage. Vous devez suivre les règles de nom pour les classes CLR. Pour plus d’informations, consultez Framework Design Guidelines. Par défaut, la classe code-behind doit être public; Toutefois, vous pouvez le définir à un niveau d’accès différent à l’aide de la directive x :ClassModifier.

Cette interprétation de l’attribut x:Class s’applique uniquement à une implémentation XAML basée sur CLR, en particulier aux services XAML .NET. D’autres implémentations XAML qui ne sont pas basées sur CLR et qui n’utilisent pas les services XAML .NET peuvent utiliser une formule de résolution différente pour connecter le balisage XAML et le code d’exécution de stockage. Pour plus d’informations sur les interprétations plus générales de x:Class, consultez [MS-XAML].

À un certain niveau d’architecture, la signification de x:Class n’est pas définie dans les services XAML .NET. Cela est dû au fait que les services XAML .NET ne spécifient pas le modèle de programmation par lequel le balisage XAML et le code de stockage sont connectés. Des utilisations supplémentaires de la directive x:Class peuvent être implémentées par des frameworks spécifiques qui utilisent des modèles de programmation ou des modèles d’application pour définir comment connecter le balisage XAML et le code-behind basé sur CLR. Chaque infrastructure peut avoir ses propres actions de génération qui permettent un certain comportement ou des composants spécifiques qui doivent être inclus dans l’environnement de génération. Dans une infrastructure, les actions de génération peuvent également varier en fonction du langage CLR spécifique utilisé pour le code-behind.

x :Class dans le modèle de programmation WPF

Dans les applications WPF et le modèle d’application WPF, x:Class pouvez être déclaré en tant qu’attribut pour tout élément qui est la racine d’un fichier XAML et qui est compilé (où le code XAML est inclus dans un projet d’application WPF avec Page action de génération) ou pour la racine Application dans la définition d’application d’une application WPF compilée. La déclaration de x:Class sur un élément autre qu’une racine de page ou une racine d’application, ou sur un fichier XAML WPF qui n’est pas compilé, provoque une erreur au moment de la compilation sous le compilateur XAML .NET Framework 3.0 et .NET Framework 3.5 WPF. Pour plus d’informations sur les autres aspects de la gestion des x:Class dans WPF, consultez Code-Behind et XAML dans WPF.

x :Class pour Windows Workflow Foundation

Pour Windows Workflow Foundation, x:Class nomme la classe d’une activité personnalisée composée entièrement en XAML, ou nomme la classe partielle de la page XAML pour un concepteur d’activités avec code-behind.

Notes d’utilisation silverlight

x:Class pour Silverlight est documenté séparément. Pour plus d’informations, consultez espace de noms XAML (x :) Language Features (Silverlight).

Voir aussi