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