Bonjour,

Je souhaite ajouter un comportement spécifique SpecialControl_Changed à plusieurs Control : Button, RadioButton, TextBlock, etc...
Ce comportement nécessite que le Control soit contenu dans une Grid.
Une propriété MyProperty est accessible à tous ces Control.

Je n'ai pour l'instant pas trouvé de conception satisfaisante.
Voici celle que j'ai conçue pour l'instant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
public interface ISpecialControl
{
   object MyProperty{ get; set; }
 
   void SpecialControl_Changed(object sender, EventArgs e);
}
 
public class SpecialTextBox : TextBox, ISpecialControl {...}
Cette solution ne me satisfait pas car mon contrôle n'est pas inclus dans une Grid.
J'essaie alors créer ma classe de cette façon :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
public class SpecialTextBox : UserControl, ISpecialControl 
{
   private Grid myGrid;
 
   private TextBox myTextBox;
}

J'aimerai plutôt créer une classe abstraite SpecialControl qui hérite de Grid. Puis les classes filles contiendraient le Control de base (Button, TextBox, ...) et son comportement.

Je n'arrive pas à mettre en place cette solution car ma classe SpecialControl n'est pas reconnue dans le xaml de ma classe fille.

Est ce que ma solution à base de classe abstraite vous parait bonne. Si oui, comment faire pour hériter de son propre UserControl?