2009-09-12 10 views
2

J'ai une DLL qui a une classe appelée série. Cette classe a un champ qui est une énumération de DataTypes. Je lie le datagrid à une liste d'objets de cette classe, et je suis capable d'afficher les valeurs d'énumération dans un combobox Cependant, les noms des valeurs n'ont pas beaucoup de sens. Par exemple, je veux afficher 'prc' comme 'prix' et toujours représenter la valeur correcte de l'objet.affichage des valeurs d'énumération dans un problème DataGridComboBox

c'est ce que je fais actuellement

  this.seriesDataTypeColumn.Items.AddRange(new object[] { 
     MuDBLayer.DataType.mv, 
     MuDBLayer.DataType.vol, 
     MuDBLayer.DataType.num, 
     MuDBLayer.DataType.prc, 
     MuDBLayer.DataType.Composite}); 

mv, vol, num et prc sont affichés dans les datagridcomboboxes. Je veux afficher la valeur de l'argent, le volume, le nombre et le prix à la place des idées?

+0

double possible de [Comment dois-je un combobox lié enum avec chaîne personnalisée mise en forme pour les valeurs ENUM?] (Http://stackoverflow.com/questions/796607/how-do-i-have- – nawfal

Répondre

1

Jetez un oeil à https://msmvps.com/blogs/deborahk/archive/2009/07/10/enum-binding-to-the-description-attribute.aspx ou http://blogs.freshlogicstudios.com/Posts/View.aspx?Id=388f7d39-0b90-43bc-b03a-c1f605dfb499. Vous pouvez ajouter un attribut Description à vos énumérations pour afficher une valeur plus conviviale.

Vous pouvez également trouver plus d'informations dans cette question connexe How to bind a custom Enum description to a DataGrid.

+0

L'approche de l'attribut description fonctionne, mais elle ne montre les valeurs amicales que lors de la liste déroulante, mais après la sélection, elle affiche toujours celles d'origine. – mustafabar

+0

Hmmm ... Je charge habituellement mes énumérations dans une classe NameValue, et la liaison s'affiche correctement. – mattruma

Questions connexes