herakles66
Messages postés8Date d'inscriptionlundi 27 avril 2009StatutMembreDernière intervention11 mai 2009
-
11 mai 2009 à 13:26
krimog
Messages postés1860Date d'inscriptionlundi 28 novembre 2005StatutMembreDernière intervention14 février 2015
-
11 mai 2009 à 16:19
Bonjour !
Voilà j'aurais besoin d'un petit avis sur le problème que je me pose ...
Dans mon code je fais le lien entre mes listes que je souhaite afficher et mon datagridview par une bindingsource.
Jusqu'a present tout marche bien, j'ai bien l'affichage de chacune de mes variables de classe dans une colonne spécifique, avec la bonne valeur pour chacun des objets de la liste.
Le problème est que j'ai rajouté une variable de classe dans ma liste qui n'est pas d'un type classique comme "string" ou "int" ou "bool". C'est une variable du type d'une classe que j'ai crée. Dans mon datagrid, une colonne est bien apparu pour cette variable mais l'information qui est présente est juste l'emplacement de l'objet. (nomDuDomaine.nomDeLObjet, pour tous les objets de la liste).
Je voudrais savoir s'il est possible dans la cellule de faire apparaitre les propriétés de l'objet lui même, plutot que juste son emplacement.
Bien entendu j'ai essayé plusieurs recherches sur le net pour trouver une solution, mais elles sont restées infructueuses...
Merci d'avance pour vos idées, voire vos solutions !
Ce que tu souhaites, dans ta datagridview de "mesDonnees", c'est afficher MaProp1, MaProp2, MaProp3 et MaProp4.MaPropPerso2 par exemple ?
Tes colonnes sont créées automatiquement en fonction de tes variables ? Dans ce cas, tu ne peux pas directement je crois.
Cependant, tu dois pouvoir, lorsque tu crées toi-même une colonne, choisir la donnée que tu bind (donc tu peux mettre un attribut de ta variable).
Il existe un autre moyen, en gardant tes colonnes créées automatiquement, c'est de surcharger la méthode "ToString()" de ta classe "perso" :
public override string ToString()
{
return MaPropPerso2;
}
Krimog : while (!(succeed = try())) ;
- NON, "LE BAR" n'est PAS un langage de programmation ! -
herakles66
Messages postés8Date d'inscriptionlundi 27 avril 2009StatutMembreDernière intervention11 mai 2009 11 mai 2009 à 15:48
Ce que tu souhaites, dans ta datagridview de "mesDonnees", c'est
afficher MaProp1, MaProp2, MaProp3 et MaProp4.MaPropPerso2 par exemple ?
Oui c'est exactement ça. L'affichage de MaProp1, MaProp2, MaProp3 est bien effectué, je cherche à afficher MaProp4.MaPropPerso1 + MaProp4.MaPropPerso2 dans la meme cellule, plutôt que le nom de l'objet qui n'est pas une information très utile :s. Effectivement mes colonnes sont générées automatiquement en "bindant"
la source de ma dataGrid sur ma liste<mesDonnees> ( pour
reprendre ton exemple)
Je vais essayer la méthode ToString, effectivement ça pourrait être ce qu'il me faut !
herakles66
Messages postés8Date d'inscriptionlundi 27 avril 2009StatutMembreDernière intervention11 mai 2009 11 mai 2009 à 16:04
Ca marche bien !
En revanche (c'est du chipotage peut être ^^) il n'a pas l'air d'accepter les "\n" pour afficher les propriétés les unes en dessous des autres dans la même cellule. A la place il me met un caractère rectangulaire. (j'ai aussi essayer avec \t il fait pareil)
krimog
Messages postés1860Date d'inscriptionlundi 28 novembre 2005StatutMembreDernière intervention14 février 201549 11 mai 2009 à 16:19
Oui, un dgv ne permet pas d'afficher plusieurs lignes dans une seule cellule je crois.
Ca fait quelques temps que je ne touche plus à Winforms, donc je n'affirme rien, mais peut-être qu'une listbox ou un listview te permettra d'aboutir à ce que tu veux.
Krimog : while (!(succeed = try())) ;
- NON, "LE BAR" n'est PAS un langage de programmation ! -