我有一个枚举值如下
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/