c# - 用于枚举的组合框转换器

标签 c# .net wpf enums ivalueconverter

我有一个枚举值如下

HomeRun、StolenBase、FirstBase 等

我想在组合框中显示这些值,在大写字母前插入一个空格,这样它将显示为“本垒打”、“失窃基地”等。

我已经有了可以为我进行格式化的代码,并且我已经将该代码添加到 IValueConverter 实现的“Convert”方法中。

我的问题是,我需要在哪里使用这个转换器(在 xaml 中),这样不仅下拉列表,而且显示的值,都将具有这种格式?我还需要实现 ConvertBack 吗?

我很清楚为枚举设置“描述”并使用流行的 EnumToDescriptionConverter,但我宁愿远离它。

最佳答案

我不确定是否有更好的方法,但您可以使用 ItemTemplate 实现您想要的

<ComboBox.ItemTemplate>
    <DataTemplate>
        <ContentPresenter
            Content="{Binding Converter={StaticResource baseballEnumConverter}}"/>
     </DataTemplate>
</ComboBox.ItemTemplate>

这将在您的 ComboBox 中显示转换后的值。

ComboBox 的 SelectedValue 仍然是 Enum 值。您不需要实现 ConvertBack。

关于c# - 用于枚举的组合框转换器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7909213/

相关文章:

java - Java SettableFuture 和 ListenableFuture 的 C# 等价物是什么?

c# - LiveChart 不显示 x 轴 WPF 上的所有标签

c# - 如何在 C# 中为桌面应用程序创建 activeX 组件

c# - blazor editcontext 验证单个字段

c# - 应用程序启动时 bundle 中的异常

c# - 我可以在我的项目和 Nuget 包中使用 DeepZoomTools.dll 吗?

.net - 锯齿状数组<-> ASP.NET 中的多维数组转换

c# - 使用 MVVM 以编程方式创建 XAML Canvas

wpf - 组合框的静态数量的 XAML 控件数组

c# - C# 部分类和 Objective C 类别之间的区别?