Di posting Enum ToString , metode dijelaskan untuk menggunakan atribut khusus DescriptionAttribute
seperti 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.selectedItem
akan 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 :-)