Partager via


x:Subclass, attribut

Mise à jour : novembre 2007

Modifie le comportement de compilation XAML dans les cas où x:Class est également fourni. De manière plus spécifique, au lieu de créer une classe partielle en fonction de la classe de la page, la x:Class fournie est créée en tant que classe intermédiaire. Dans ce cas, la classe dérivée fournie devrait reposer sur x:Class.

Utilisation des attributs XAML

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

Valeurs XAML

namespace

Facultatif. Spécifie un espace de noms CLR contenant classname. Si namespace est spécifié, un point (.) sépare namespace et classname.

classname

Obligatoire. Spécifie le nom CLR de la classe partielle qui connecte le XAML chargé et votre code-behind pour ce XAML. Voir Notes.

subclassNamespace

Facultatif. Peut être différent de namespace pour tant que chaque espace de noms puisse résoudre l'autre. Spécifie un espace de noms CLR contenant subclassName. Si subclassName est spécifié, un point (.) sépare subclassNamespace et subclassName.

subclassName

Obligatoire. Spécifie le nom CLR de la sous-classe.

Dépendances

x:Class, attribut doit également être fourni sur le même élément, lequel doit être l'élément racine d'une page.

Notes

À l'origine, x:Subclass est destiné aux langages qui ne prennent pas en charge les déclarations de classes partielles.

x:Subclass peut être déclaré pour tout élément racine d'une page XAML (Extensible Application Markup Language) et/ou pour la racine Application de la définition d'application, qui possède déjà x:Class. La déclaration de x:Subclass sur un élément autre qu'une racine de page ou d'application, ou sa spécification lorsqu'aucun x:Class n'existe, provoque une erreur de compilation.

La création de classes dérivées qui fonctionnent correctement pour le scénario x:Subclass est relativement complexe. Vous devrez peut-être examiner les fichiers intermédiaires (fichiers .g produits dans le dossier obj de votre projet, avec des noms qui incorporent les noms de fichier .xaml). Ces fichiers intermédiaires peuvent vous aider à déterminer l'origine de certaines constructions de programmation dans les classes partielles jointes au sein de l'application compilée.

La classe utilisée comme x:Subclass ne peut pas être imbriquée.

Les gestionnaires d'événements dans la classe dérivée doivent être internal override (Friend Overrides dans Microsoft Visual Basic .NET) afin de substituer les stubs pour les gestionnaires créés dans la classe intermédiaire au moment de la compilation. Sinon, les implémentations de classe dérivée masqueront l'implémentation de la classe intermédiaire et les gestionnaires de classe intermédiaire ne pourront pas être appelés.

Lorsque vous définissez x:Class et x:Subclass , vous ne devez pas fournir d'implémentation pour la classe référencée par x:Class. Vous devez uniquement lui attribuer un nom via l'attribut x:Class, afin que le compilateur puisse avoir une idée de la classe créée dans les fichiers intermédiaires (dans ce cas, le compilateur ne choisit pas de nom par défaut). Vous pouvez attribuer une implémentation à la classe x:Class si vous le souhaitez, mais cela ne rentre pas dans le cadre du scénario d'utilisation type de x:Class et x:Subclass.

Voir aussi

Concepts

XAML et classes personnalisées

Référence

x:Class, attribut