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

C# WPF应用程序中的命名空间中不存在该名称,c#,wpf,xaml,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=

使用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、使用管理员权限重建解决方案,更改了平台目标和配置,但没有任何帮助。我还能做什么?

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

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


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

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


右键单击XAML项目,选择Add reference,然后向enum项目添加引用。

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

假设您在公共位置有该枚举,并且正在向该公共项目添加引用,您可以尝试类似这样的操作:this TypeName=“{x:Static CommonAlias:SmPageTypes}”@AlexK:枚举是在WPF应用程序项目中定义的还是在类库中定义的?