Enum类型的.NET WPF XAML命名空间映射

时间:2009-03-10 19:41:10

标签: .net wpf data-binding xaml enums

我将 W3CErrorOrWarning 类型对象的集合绑定到WPF窗口中的控件。

其中一个属性名为“Type”。它的类型为 W3CErrorOrWarningType ,这是一个简单的枚举:

Enum W3CErrorOrWarningType
    ValidationError
    ValidationWarning
End Enum

我正试图以这种方式使用它......

<Window ...
        xmlns:enums="clr-namespace:WpfApplication1.XhtmlTextBox.W3CValidator.W3CResponse.W3CErrorOrWarning"
        ... />
    ...
    <DataTemplate>
        <Image Name="TypeIcon" ... />
        <DataTemplate.Triggers>
            <DataTrigger Binding="{Binding Type}">
                <DataTrigger.Value>
                    <enums:W3CErrorOrWarningType>
                        ValidationError
                    </enums:W3CErrorOrWarningType>
                </DataTrigger.Value>
                <Setter TargetName="TypeIcon"
                        Property="Source" 
                        Value="images/Error.png"/>
            </DataTrigger>
            <DataTrigger Binding="{Binding Type}">
                <DataTrigger.Value>
                    <enums:W3CErrorOrWarningType>
                        ValidationWarning
                    </enums:W3CErrorOrWarningType>
                </DataTrigger.Value>
                <Setter TargetName="TypeIcon"
                        Property="Source" 
                        Value="images/Warning.png"/>
            </DataTrigger>
        </DataTemplate.Triggers>
    </DataTemplate>

我收到此错误:

  

未定义的CLR命名空间。该   'clr-namespace'URI是指a   命名空间   'WpfApplication1.XhtmlTextBox.W3CValidator.W3CResponse.W3CErrorOrWarning'   这不包括在装配中。

我的 WpfApplication1 项目包含用户控件 XhtmlTextBox 。该用户控件包含一个名为 W3CValidator 的类,其中包含一个名为 W3CResponse 的类,其中包含一个名为 W3CErrorOrWarning 的类,其中包含一个名为 W3CErrorOrWarningType的枚举

如何在Window的XAML中输入此类型的命名空间?

1 个答案:

答案 0 :(得分:1)

编辑:我认为错了,第一次但是......

您是否在命名空间中包含枚举名称?

我应该:

xmlns:enums="clr-namespace:WpfApplication1.XhtmlTextBox.W3CValidator.W3CResponse

考虑到以上都是名称空间而不是类型,如果W3CResponse是一个类型,那么你不能直接在XAML中使用嵌套枚举,XAML不支持嵌套类。

Requirements for a Custom Class as a XAML Element

  

您的自定义类不能是嵌套的   类