C# WPF应用程序中的命名空间中不存在该名称
使用VS2017创建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=
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应用程序项目中定义的还是在类库中定义的?