在WPF中找不到静态引用的枚举类型
我正在尝试将枚举绑定到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; ... } } 我现在试图像这样绑
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}