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

时间:2011-04-15 12:22:31

标签: wpf c#-4.0 .net-4.0 enums valueconverter

我正在尝试将枚举绑定到WPF中的单选按钮(灵感来自this answer),但我无法找到转换器参数的枚举类型:

枚举按以下方式定义

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

        public MySelections CurrentSelection;

        ...

    }
}

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

<Window x:Class="Application.MainWindow"
        ....
        xnlns:models="clr-namespace:Application.Models" >

...
<RadioButton Content="One"
             IsChecked="{Binding Path=CurrentSelection, Converter={StaticResource EnumToBooleanConverter}, ConverterParameter={x:Static models:Enums.MySelections.one}}" />
...

问题在于{x:Static models:Enums.MySelections.one},它不断抛出无法找到models:Enums.MySelections类型的错误。

如何找到我的枚举类型?

2 个答案:

答案 0 :(得分:40)

使用“+”代替“。”在XAML中获取嵌套类型:

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

答案 1 :(得分:14)

你可以在课堂外声明:

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

    public  class Enums
    {
        public MySelections CurrentSelection;

然后这个xaml将起作用:

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

x:Static标记具有固定语法:

  

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