Bonjour,
pour un projet que je dois faire, une des option est de pouvoir ajouter "dynamiquement" des champs personnalisable.
Par exemple, si on gère une liste de client, on peut demander à ajouter un champ supplémentaire nommé "code d'accès"
La liste de client est visible via un DataGridView, dans ce cas, il faudrait rajouter une colonne nommé "code d'accès"
Pour l'affichage/ajout des colonnes, j'ai pas de difficulté particulière
Bien sur, il faut l'a sauvegarder cette liste de client, j'ai pas cherché compliqué, je sérialise en fichier xml...
Concernant ce champ ajouté dynamiquement (on peut ajouter un nombre fini de champ), ça se traduit bien entendu par une propriété dans l'objet de base...
J'ai voulu mettre ses champs dans une autre classe spécialement faite pour l'occasion:
Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 [Serializable] Public Class ClasseDeBase { // Divers propriétés normales public ExtendedFields ExtraFields { get; set; } [...] } [Serializable] public class ExtendedFields { public String Field1 { get; set; } public String Field2 { get; set; } [...] }
Maintenant, dans ma WinForm, j'ai mon DGV myDataGridView:
Et là, dans mon DGV, la colonne ExtraFields indique uniquement le type de la donnée (ExtendedFields), ce qui est normal.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 List<ClasseDeBase> myList = new List<ClasseDeBase>() { [...] } myDataGridView.DataSource = myList;
Mon souci est que
Je voudrais pouvoir afficher une colonne avec pour information le Field1 (ou n'importe lequel) de la propriété ExtraField qui est de type ExtendedFields.
Comment puis-je m'y prendre?
Partager