Как у меня есть перечисление связанный combobox с пользовательским форматированием строки для значений перечисления?



в должности 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 со значениями перечисления, так как я не могу заставить ComboBox вызывать GetDescription.



то, что я хочу имеет следующие требования:




  • чтение (HowNice)myComboBox.selectedItem возвращает выбранное значение в качестве значения enum.

  • пользователь должен видеть удобные строки отображения, а не только имя значений перечисления. Так что вместо того, чтобы видеть"NotNice", пользователь увидит "Not Nice At All".

  • надеюсь, решение потребует минимальных изменений в код существующих перечислений.


очевидно, я мог бы реализовать новый класс для каждого enum, которое я создаю, и переопределить его ToString(), но это много работы для каждого enum, и я бы предпочел избежать этого.



какие идеи?



Черт, я даже брошу в объятия в качестве награды : -)

602   0  

Comments

    Ничего не найдено.