C# 是否更改包含枚举的WPF组合框的显示文本?
情况: C#使用WPF和.net4.5 我在外部库中定义了一个枚举。假设它被称为SomeEnum,包含“SomeValue1”、“SomeValue2”、“SomeValue3”等项 我有一个组合框,里面填充了如下值:C# 是否更改包含枚举的WPF组合框的显示文本?,c#,wpf,enums,C#,Wpf,Enums,情况: C#使用WPF和.net4.5 我在外部库中定义了一个枚举。假设它被称为SomeEnum,包含“SomeValue1”、“SomeValue2”、“SomeValue3”等项 我有一个组合框,里面填充了如下值: comboBoxValues.ItemsSource = Enum.GetValues(typeof(SomeEnum)); 如预期的那样,组合框显示: 一些价值1 一些价值2 一些价值3 问题: 我能否以某种方式仅更改显示的值,以使“某些”部分丢失。 因此,组合框仅显示以下
comboBoxValues.ItemsSource = Enum.GetValues(typeof(SomeEnum));
如预期的那样,组合框显示:
一些价值1
一些价值2
一些价值3
问题:
我能否以某种方式仅更改显示的值,以使“某些”部分丢失。
因此,组合框仅显示以下内容:
价值1
价值2
价值3
但是:“Value1”的SelectedValue仍然应该是“SomeValue1”。您可以使用LINQ来修剪字符串:
comboBoxValues.ItemsSource = Enum.GetValues(typeof(SomeEnum)).Select(x => x.ToString().TrimStart("Value"));
但老实说,我建议您制作一个双向转换器,这样您就可以将
SelectedItem
绑定到SomeEnum SomeProperty{get;set;}
或设置一个类似于的字典,您可以使用LINQ来修剪字符串:
comboBoxValues.ItemsSource = Enum.GetValues(typeof(SomeEnum)).Select(x => x.ToString().TrimStart("Value"));
但老实说,我建议您制作一个双向转换器,这样您就可以将SelectedItem
绑定到someenumsomeproperty{get;set;}
或设置类似的字典