Требования
Я хочу выбрать значения из enum
в С# с помощью ComboBox
или выбрать битмаски (для enum
с атрибутом Flags
) с помощью CheckedListBox
. Я хочу, чтобы добавить значения в элементы управления в качестве выбираемых элементов и четко указать, какой пользователь выбрал.
Цель 1: Удобство
Я также хочу, чтобы выбор был понятным и приятным для пользователя. В настоящее время я уже могу добавить значения enum
в ComboBox
или CheckedListBox
, но Enum.ToString()
вернет имя идентификатора. Pascal Case достаточно хорош для меня, но не для моих пользователей.
Цель 2: Простой код
Я хочу, чтобы это было легко кодировать. Я имею в виду easy. Я хочу, чтобы это было просто запоздалой мыслью для определения и/или использования любого enum
значения.
Мое решение
Теперь я огляделся и увидел несколько приятных решений. Некоторые из них лучше по-своему, например если вам действительно нужно разместить свои собственные описания или сделать это еще на один шаг, поддерживает несколько языков. Вы можете сделать поддельные перечисления. Но я продолжал смотреть, и ни у кого из них не было достаточно элегантности и простоты - для моих целей - как то, что я написал. См. Ниже.