情况:
带有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 ”。
答案 0 :(得分:2)
您可以使用LINQ修剪字符串:
comboBoxValues.ItemsSource = Enum.GetValues(typeof(SomeEnum)).Select(x => x.ToString().TrimStart("Value"));
但是,老实说,我建议做一个双向转换器,这样您就可以将SelectedItem
绑定到SomeEnum SomeProperty {get;set;}
或设置像here这样的Dictionary