在WPF中找不到静态引用的枚举类型

在WPF中找不到静态引用的枚举类型,wpf,c#-4.0,.net-4.0,enums,valueconverter,Wpf,C# 4.0,.net 4.0,Enums,Valueconverter,我正在尝试将枚举绑定到WPF中的单选按钮(受启发),但在查找转换器参数的枚举类型时遇到困难: 枚举的定义方式如下 namespace Application.Models { public class Enums { public enum MySelections { one, two ,three }; public MySelections CurrentSelection; ... } } 我现在试图像这样绑

我正在尝试将枚举绑定到WPF中的单选按钮(受启发),但在查找转换器参数的枚举类型时遇到困难:

枚举的定义方式如下

namespace Application.Models
{
    public class Enums
    {
        public enum MySelections { one, two ,three };

        public MySelections CurrentSelection;

        ...

    }
}
我现在试图像这样绑定复选框(假设数据上下文是正确的,并且实现了值转换器:)


...
...
问题在于
{x:Static models:Enums.MySelections.one}
,它不断抛出一个错误,即找不到类型
models:Enums.MySelections


如何查找枚举类型?

您可以在类外声明它:

namespace Application.Models
{
    public enum MySelections { one, two, three };

    public  class Enums
    {
        public MySelections CurrentSelection;
然后这个xaml就可以工作了:

.... ConverterParameter={x:Static models:MySelections.one}

标记具有固定语法:

{x:静态 前缀:typeName.staticMemberName}

使用“+”而不是“.”来获取XAML中的嵌套类型:

{x:Static models:Enums+MySelections.one}

如果您将枚举定义向上移动到名称空间中,并从绑定中删除
enum
类,是否有效?就是这样,谢谢。所以我想澄清一下,这个枚举现在在哪里?命名空间的静态成员?但在VS2010中,这至少会导致设计器无法加载视图,因此您甚至看不到您试图设计的内容。+1-对我来说很有用。但是,它似乎不适用于x:Type。x:Type不支持此语法吗?(例如,{x:Type-models:Enums+myslections})太棒了!这应标记为正确答案。
{x:Static models:Enums+MySelections.one}