В сообщении Enum ToString описан способ использования пользовательского атрибута DescriptionAttribute следующим образом:
Enum HowNice {
  [Description("Really Nice")]
  ReallyNice,
  [Description("Kinda Nice")]
  SortOfNice,
  [Description("Not Nice At All")]
  NotNice
}
И затем вы вызываете функцию GetDescription, используя синтаксис вроде:
GetDescription<HowNice>(NotNice); // Returns "Not Nice At All"
Но это действительно не помогает мне , когда я хочу просто заполнить ComboBox значениями enum, поскольку я не могу заставить ComboBox вызывать GetDescription.
Я хочу иметь следующие требования:
-  Чтение (HowNice)myComboBox.selectedItemвернет выбранное значение в качестве значения перечисления.
-  Пользователь должен увидеть удобные для пользователя строки отображения, а не только имя значений перечисления. Поэтому вместо того, чтобы видеть "NotNice", пользователь увидит "Not Nice At All".
- Надеемся, что решение потребует минимальных изменений кода для существующих перечислений.
Очевидно, я мог бы реализовать новый класс для каждого перечисления, который я создаю, и переопределить его ToString(), но это много работы для каждого перечисления, и я бы предпочел избежать этого.
Любые идеи?
Черт, я даже закрою объятие в качестве награды: -)
