Bonjour,

Dans mon projet, j'ai un objet SystemModel, qui hérite de SubsystemBaseModel.

J’utilise les objets SubsystemModel pour populer une datagridview.

Le problème est que dans la datagridview, l'ordre des colonnes ne me convient pas, je voudrais que la colonne System Name soit tout a droite.

Nom : colonnes.png
Affichages : 200
Taille : 5,6 Ko

Je pourrais certes le forcer en utilisant dataGridView1.Columns["macolonne"].DisplayIndex, mais le problème est que cette datagridview se trouve sur un User Control que j'utilise dans différents cas, et elle peut être utilisée pour afficher différents objets (donc forcer les colonnes me forcerait a faire du code spaghetti que je cherche a eviter).

J'ai essaye d'utiliser les annotation [Display(Order = x)], [Column(Order=3)], rien ne change.

Y-a-t'il un moyen, via des annotations que je ne connais pas, qui me permettrait d'organiser les colonnes tel que je le souhaite?

Note 1: l'annotation DisplayName marche bien.
Note 2: dans le cas du SubsystemModel, tel que dans l'exemple, je pourrais certes me passer d’héritage et tout mettre dans la même classe, mais j'ai d'autres cas similaires avec beaucoup plus de propriétés.

EDIT: bon, j'ai continué a chercher. Il semble que DataGridView ne sait pas lire les annotation Display. Par exemple, Display(Name="ma colonne") ne marche pas. En attendant une réponse, je vais voir si je peux implémenter un méthode qui saurait lire les annotations, et changer ColumnIndex en conséquence.