为了账号安全,请及时绑定邮箱和手机立即绑定

如何将枚举绑定到WPF中的组合框控件?

如何将枚举绑定到WPF中的组合框控件?

繁华开满天机 2019-08-30 15:50:46
我试图找到一个简单的例子,其中枚举按原样显示。我见过的所有示例都尝试添加漂亮的显示字符串,但我不希望这种复杂性。基本上我有一个类,它包含我绑定的所有属性,首先将DataContext设置为此类,然后在xaml文件中指定这样的绑定:<ComboBox ItemsSource="{Binding Path=EffectStyle}"/>但是这并没有在ComboBoxas项中显示枚举值。
查看完整描述

3 回答

?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

我使用了另一种使用MarkupExtension的解决方案。


我做了一个提供项目来源的课程:


public class EnumToItemsSource : MarkupExtension

{

    private readonly Type _type;


    public EnumToItemsSource(Type type)

    {

        _type = type;

    }


    public override object ProvideValue(IServiceProvider serviceProvider)

    {

        return Enum.GetValues(_type)

            .Cast<object>()

            .Select(e => new { Value = (int)e, DisplayName = e.ToString() });

    }

}

这几乎都是......现在在XAML中使用它:


    <ComboBox DisplayMemberPath="DisplayName"

          ItemsSource="{persons:EnumToItemsSource {x:Type enums:States}}"

          SelectedValue="{Binding Path=WhereEverYouWant}"

          SelectedValuePath="Value" />

将“枚举:状态”更改为您的枚举


查看完整回答
反对 回复 2019-08-30
  • 3 回答
  • 0 关注
  • 910 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信