【问题标题】:Change displayed text of WPF ComboBox containing an Enum?更改包含枚举的 WPF 组合框的显示文本?
【发布时间】:2019-04-10 15:40:23
【问题描述】:

情况:

带有 WPF 和 .NET 4.5 的 C#。

我在外部库中定义了一个枚举。假设它称为 SomeEnum 并包含项目“SomeValue1”、“SomeValue2”、“SomeValue3” ,等等。

我有一个像这样填充这些值的组合框:

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

正如预期的那样,ComboBox 显示:

一些价值1

一些价值2

一些价值3

...

问题:

我能否以某种方式仅更改显示的值,以使“Some”部分丢失。 所以 ComboBox 只显示这个:

价值1

价值2

价值3

...

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

【问题讨论】:

    标签: c# wpf enums


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-03
      • 2021-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多