Изменить отображаемый текст WPF ComboBox, содержащий Enum? - PullRequest
0 голосов
/ 10 апреля 2019

Ситуация:

C # с WPF и .NET 4.5.

У меня есть Enum, определенный во внешней библиотеке.Допустим, он называется SomeEnum и содержит элементы " SomeValue1 ", " SomeValue2 ," SomeValue3"и многие другие.

У меня есть ComboBox, заполненный следующими значениями:

comboBoxValues.ItemsSource = Enum.GetValues(typeof(SomeEnum));

ComboBox, как и ожидалось, показывает:

SomeValue1

SomeValue2

SomeValue3

...

Вопрос:

Можно ли как-то изменить только отображаемые значения, чтобычто часть " Some " отсутствует. Так что ComboBox показывает только это:

Value1

Value2

Value3

...

Но: SelectedValue для " Value1 " все еще должно быть " SomeValue1 ".

1 Ответ

2 голосов
/ 10 апреля 2019

Вы можете использовать LINQ, чтобы просто обрезать строки:

comboBoxValues.ItemsSource = Enum.GetValues(typeof(SomeEnum)).Select(x => x.ToString().TrimStart("Value"));    

Но, если честно, я бы предложил сделать двусторонний преобразователь, чтобы потом можно было связать SelectedItem с SomeEnum SomeProperty {get;set;} или установитьсловарь как здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...