WPF France

  • Augmenter la taille
  • Taille par défaut
  • Diminuer la taille

Hériter un UserControl d'un (autre) UserControl

Envoyer Imprimer PDF
Note des utilisateurs: / 1
MauvaisTrès bien 

En WPF, lorsqu'il est nécessaire de créer un contrôle ayant un comportement particulier on va créer un UserControl.
Cela permet de plus de combiner les fonctionnalités d'un ou plusieurs contrôles Windows Presentation Foundation (WPF) avec du code personnalisé.

Il est parfois nécessaire d'hériter d'un de ces UsersControl particulier afin de lui ajouter une nouvelle fonctionnalité. Comme nous allons le voir dans cet article, c'est tout à fait possible  !

 


Imaginons que nous ayons un UserControl nommé MonUserControlDeBase  et que nous souhaitons faire un nouveau userControl héritant de lui.Ce nouveau userControl nous l’appellerons GrandEnfantUserControl. 

Voici le code définissant de façon classique l’userControl de base (MonUserControlDeBase) :

   1: public class MonUserControlDeBase: UserControl
   2: {
   3:     public MonUserControlDeBase(): base()
   4:     {
   5:     }
   6: }


Place à la création de l’userControl en le faisant hériter de MonUserControlDeBase.

Par défaut Visual Studio fait hériter notre UserControl de la classe …UserControl (logique me direz vous…) lorsque l’on utilise le wizard d’ajout. Il faut donc modifier le XAML pour qu’il hérite en fait de notre UserControl MonUserControlDeBase .
Pour cela on déclare le namespace de notre assembly et on utilise ce XAML:

   1: <My:MonUserControlDeBase x:Class="WPFFrance.GrandEnfantUserControl"
   2:         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
   3:         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
   4:         xmlns:My="clr-namespace:WPFFrance">
   5:          <UniformGrid>
   6:          UniformGrid>
   7: </My:MonUserControlDeBase>

Voici finalement le code de déclaration de GrandEnfantUserControl :
   1: public partial class GrandEnfantUserControl: MonUserControlDeBase
   2:   {
   3:        public GrandEnfantUserControl()
   4:        {
   5:        }
   6:   }
Commentaires (1)
Mise à jour le Mercredi, 24 Mars 2010 16:01  

Partagez


Article au hasard

  • (Article original sur le blog de Sébastien) Ces dernier jours je me suis intéressé d’un peu plus prés à SketchFlow, ce fameux outil collaboratif intégré à Expression Blend 3 et qui propose une véritable plate forme commune pour les designers, les développeurs et les utilisateurs afin de concevoir les premières esquisse d’interface graphique d’un proje...
    Lire la suite...