Di posting Enum ToString , metode dijelaskan untuk menggunakan atribut khusus DescriptionAttributeseperti ini:
Enum HowNice {
[Description("Really Nice")]
ReallyNice,
[Description("Kinda Nice")]
SortOfNice,
[Description("Not Nice At All")]
NotNice
}
Dan kemudian, Anda memanggil suatu fungsi GetDescription, menggunakan sintaks seperti:
GetDescription<HowNice>(NotNice); // Returns "Not Nice At All"
Tetapi itu tidak benar-benar membantu saya ketika saya hanya ingin mengisi ComboBox dengan nilai enum, karena saya tidak bisa memaksa ComboBox untuk memanggilGetDescription .
Yang saya inginkan memiliki persyaratan berikut:
- Membaca
(HowNice)myComboBox.selectedItemakan mengembalikan nilai yang dipilih sebagai nilai enum. - Pengguna harus melihat string tampilan yang mudah digunakan, dan bukan hanya nama nilai pencacahan. Jadi, alih-alih melihat "
NotNice", pengguna akan melihat "Not Nice At All". - Mudah-mudahan, solusinya membutuhkan sedikit perubahan kode pada pencacahan yang ada.
Jelas, saya bisa mengimplementasikan kelas baru untuk setiap enum yang saya buat, dan menimpanya ToString(), tapi itu banyak pekerjaan untuk setiap enum, dan saya lebih suka menghindarinya.
Ada ide?
Heck, saya bahkan akan memeluk sebagai hadiah :-)