更改包含枚举的WPF ComboBox的显示文本吗?

时间:2019-04-10 15:40:24

标签: c# wpf enums

情况:

带有WPF和.NET 4.5的C#。

我在外部库中定义了一个Enum。假设它称为 SomeEnum ,其中包含项目“ SomeValue1 ”,“ SomeValue2 ,” SomeValue3 “ ,还有更多。

我有一个ComboBox,其中填充了以下这些值:

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

ComboBox如预期的那样显示:

  

SomeValue1

     

SomeValue2

     

SomeValue3

     

...

问题:

我可以以某种方式仅更改显示的值,以便缺少“ Some ”部分。 这样ComboBox仅显示以下内容:

  

Value1

     

Value2

     

Value3

     

...

但是:“ Value1 ”的 SelectedValue 仍应为“ SomeValue1 ”。

1 个答案:

答案 0 :(得分:2)

您可以使用LINQ修剪字符串:

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

但是,老实说,我建议做一个双向转换器,这样您就可以将SelectedItem绑定到SomeEnum SomeProperty {get;set;}或设置像here这样的Dictionary