Peut être aurais je du exposer mon problème plus clairement des le début :
 
J'ai une série de classes dont je veux afficher les propriétés via un gridview
 
Code :
 - class A
 - {
 -   int _intA;
 -   public  int IntA {get {return _intA;}}
 -   bool _boolA;
 -   public bool BoolA {get {return _boolA;}} 
 - }
 - class B
 - {
 -   float _floatB;
 -   public  float FloatB {get {return _floatB;}}
 -   string _stringA;
 -   public  StringA{get {return _stringA;}} 
 - }
 - ...
 
  | 
Pour toute ces classes, je voudrais ajouter des propriétés
Code :
 - public  string Propriété1{get ...}
 - public  string Propriété2{get ...}
 
  | 
 
pour avoir au final des classes  
Code :
 - class A_evoluee
 - {
 -   int _intA;
 -   public  int IntA {get {return _intA;}}
 -   bool _boolA;
 -   public bool BoolA {get {return _boolA;}} 
 -   public  string Propriété1{get ...}
 -   public  string Propriété2{get ...}
 - }
 - class B_evoluee
 - {
 -   float _floatB;
 -   public  float FloatB {get {return _floatB;}}
 -   string _stringA;
 -   public  StringA{get {return _stringA;}} 
 -   public  string Propriété1{get ...}
 -   public  string Propriété2{get ...}
 - }
 - ...
 
  | 
 
Comme l'héritage multiple n'existe pas
Soit je définit une interface évoluée et je fais hériter mes classes évoluées de cette interface
Code :
 - public interface IEvoluee
 - {
 -   string Propriété1{get ...}
 -   string Propriété2{get ...}
 - }
 - class A_evoluee : A, IEvoluee
 - {
 -   string _propriété1;
 -   public  string Propriété1{get {return _propriété1;}}
 -   string _propriété2;
 -   public  string Propriété2{get {return _propriété2;}}
 - }
 - ...
 
  | 
 
Mais il faut que je le fasse pour chaque classe (impensable)
 
Soit (solution de repli) j'encapsule ma classe de Base dans une classe template
Code :
 - class Evoluee<T>
 - {
 -   public Evoluee(T source) : {object = sources;}
 -   T _object;
 -   string _propriété1;
 -   public  string Propriété1{get {return _propriété1;}}
 -   string _propriété2;
 -   public  string Propriété2{get {return _propriété2;}}
 - }
 - using A_evoluee = Evoluee<A>;
 - using B_evoluee = Evoluee<B>;
 
  | 
Mais dans ce cas là les propriétés de ma classe de base (mon _object) ne sont plus accessibles et ne s'afficheront pas automatiquement...
 
Des idées ?
 
Toonj