该名称在WPF应用程序的名称空间中不存在

时间:2018-07-18 17:48:21

标签: c# wpf xaml

使用VS2017创建WPF应用程序。我有一个像这样的枚举:

namespace Sample.Common
{
    public enum SmPageTypes
    {
        Type1 = 0,
        Type2 = 1
    }
}

我正在尝试以xaml形式使用它,但出现错误:

  

名称空间“ clr-Sample.Common; assembly = Sample”中不存在名称“ SmPageTypes”。

这是xaml代码 添加名称空间:

xmlns:CommonAlias="clr-namespace:Sample.Common;assembly=Sample"

并将枚举添加为资源:

<Window.Resources>
    <ObjectDataProvider x:Key="dataFromEnum" MethodName="GetValues"
                        ObjectType="{x:Type System:Enum}">
        <ObjectDataProvider.MethodParameters>
            <x:Type TypeName="CommonAlias:SmPageTypes" />
        </ObjectDataProvider.MethodParameters>
    </ObjectDataProvider>
</Window.Resources>

我添加了包含此枚举的项目,试图清理,重新启动Visual Studio,使用管理员权限重建解决方案,更改平台目标和配置,但没有帮助。我还能做什么?

3 个答案:

答案 0 :(得分:1)

如果枚举和XAML位于不同的项目中,则包含XAML的项目必须引用包含该枚举的项目。

右键单击XAML项目,选择“添加引用”,然后向您的枚举项目添加引用。

答案 1 :(得分:0)

在VS中,右键单击您的解决方案->属性->配置属性

打开一个新对话框,尝试将项目配置从“调试”更改为“发行”,反之亦然。

之后,重新构建您的解决方案。它可以解决您的问题

答案 2 :(得分:0)

我已经解决了问题。原因是程序集名称应为Sample.Common,而不是Sample。