Dans le post Enum ToString, une méthode est décrite à l'utilisation de l'attribut personnalisé DescriptionAttribute
comme ceci:
Enum HowNice {
[Description("Really Nice")]
ReallyNice,
[Description("Kinda Nice")]
SortOfNice,
[Description("Not Nice At All")]
NotNice
}
Et puis, vous appelez une fonction GetDescription
, en utilisant la syntaxe comme:
GetDescription<HowNice>(NotNice); // Returns "Not Nice At All"
Mais ce n'est pas vraiment m'aider quand je veux simplement remplir une zone de liste déroulante avec les valeurs de l'enum, puisque je ne peux pas la force de la zone de liste déroulante appel GetDescription
.
Ce que je veux a les conditions suivantes:
- La lecture de
(HowNice)myComboBox.selectedItem
sera de retour la valeur sélectionnée comme la valeur d'enum. - L'utilisateur doit voir l'écran convivial cordes, et pas seulement le nom de l'énumération des valeurs. Donc, au lieu de voir "
NotNice
", l'utilisateur, voir "Not Nice At All
". - Heureusement, la solution nécessitera que très peu de modifications au code existant énumérations.
Évidemment, je pourrais mettre en œuvre une nouvelle classe pour chaque enum que j'ai créer, et de remplacer son ToString()
, mais c'est beaucoup de travail pour chaque enum, et je préfère éviter.
Des idées?
Bon, je vais encore jeter un câlin comme un bounty :-)