DataGridComboBox with Enum

maldor Messages postés 5 Date d'inscription lundi 9 mai 2005 Statut Membre Dernière intervention 20 mai 2005 - 18 mai 2005 à 14:46
maldor Messages postés 5 Date d'inscription lundi 9 mai 2005 Statut Membre Dernière intervention 20 mai 2005 - 20 mai 2005 à 09:34
Salut,



J'ai passé un long moment à chercher un DataGridComboBoxStyle... J'ai
pu en trouver un grand nombre, mais aucun d'entre eux ne m'a permis de
faire ce que je souhaité. Je me remet donc en question. La solution est
probablement très simple mais je n'arrive pas à la trouver.



Aujourd'hui j'utilise des ComboBox que je "Bind" sur des enums. Pour cela, je fais quelque chose du genre:



myComboBox.DataSource = Enum.GetValues(typeof (E_PROGRAM_ROLE));



Ca, ca marche très bien. Maintenant, lorsque j'essaye la même pratique
dans un DataGridComboBoxStyle, J'ai des erreurs m'indiquant que je me
dois de préciser ValueMember et DisplayMember, ce que je ne faisais pas
dans mon premier cas d'utilisation. Je sais comment extraire ces infos
d'un dataset ou d'un dataview, mais pour ce qui est d'un Enum, il faut
dire que je sèche...



J'apprécierais beaucoup votre coup de main =P

Merci d'avance.

5 réponses

taoetc Messages postés 346 Date d'inscription lundi 8 septembre 2003 Statut Membre Dernière intervention 3 septembre 2007 3
18 mai 2005 à 18:09
A tout hazard, est ce que tu as essayé :
ValueMember = "Value" ou "Object"

mais c'est vraiment au pif
0
maldor Messages postés 5 Date d'inscription lundi 9 mai 2005 Statut Membre Dernière intervention 20 mai 2005
19 mai 2005 à 12:06
Yup j'ai essayé... j'ai tenté ValueMember =
typeof(E_PROGRAM_ROLE).GetName() aussi... Mais je dois dire que je
m'embrouille pas mal entre ValueMember et DisplayMember...
0
taoetc Messages postés 346 Date d'inscription lundi 8 septembre 2003 Statut Membre Dernière intervention 3 septembre 2007 3
19 mai 2005 à 13:31
ValueMember, c'est la valeur que te revoit la combo par la propriété SelectedValue
DisplayMember, c'est la colonne de ta liste affichée dans le combo
Il 'nest pas nécessaire de remplir les deux , je crois que displayMember suffit

Si tu ne t'en sort pas en faisant comme cela, tu peux toujours ajouter ta liste à la liste des items

ccombo.items.addrange( (object[] )Enum.GetValues(typeof (E_PROGRAM_ROLE))); mais je sais pas si ca marche, c'est un peu au pif

Avant, essaie un truc du style
combo.DisplayMember = typeof(E_PROGRAM_ROLE).tostring() ou "Value" vue que c'est une array qui est renvoyée par le GetValues, la combo hésite peut etre entre Index et Value ou "String" ou "Object" ou "Int" on sait jamais , et tu met la meme chose dans ValueMember
0
taoetc Messages postés 346 Date d'inscription lundi 8 septembre 2003 Statut Membre Dernière intervention 3 septembre 2007 3
19 mai 2005 à 13:35
Petite précision entre valuemember et displaymember, je m'en sers pas mal , mais principalement avec des datatables, du style une datatable référence avec deux colonnes code et libellé

combo.datasource = reference;
combo.DisplayMember = "libellé";
comob.ValueMember ="code";

Comme cela, la combo m'affiche le libellé mais ensuite, me renvoie le code correspond au libellé sélectionné par le biais de combo.SelectedValue ,c'est tres utile
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
maldor Messages postés 5 Date d'inscription lundi 9 mai 2005 Statut Membre Dernière intervention 20 mai 2005
20 mai 2005 à 09:34
Alors c'est bien que j'avais compris... Je vais reprendre mes investigations... Merci
0
Rejoignez-nous