猿问

该名称在XAML中的命名空间错误中不存在

在VB.NET WPF应用程序上使用VS2012。我有一个用于学习WPF的简单MusicPlayer教程应用程序。我正在逐步将本教程的C#版本转换为VB.NET。


它在应用程序中有2个类,它们都在同一个命名空间下。我能够在XAML中引用名称空间,但是当我尝试在XAML中引用类对象时,出现错误,并且无法编译。


奇怪的是,IntelliSense既可以通过xmlns:c =标记引用名称空间,也可以在使用键入类对象时很好地工作, <c: 但是该对象带有下划线,并且在尝试在设计器中构建或工作时会产生错误。


.vb类文件位于名为\ Controls的文件夹中。主项目根命名空间特意留为空白。该类是这样编码的...


Namespace MusicPlayer.Controls

    Public Class UpdatingMediaElement

       .... code here

    End Public

End Namespace

xaml看起来像这样


(<Window >标记中定义的命名空间


xmlns:c="clr-namespace:MusicPlayer.Controls"

(在中定义的对象<Grid>)


  <c:UpdatingMediaElement Name="MyMediaElement" />

(显示错误)名称空间“ clr-namespace:MusicPlayer.Controls”中不存在名称“ UpdatingMediaElement”。


不确定出什么问题或如何解决?


慕田峪9158850
浏览 2144回答 3
3回答

哔哔one

在编写wpf代码和VS时,请告诉“名称空间clr-namespace:ABC中不存在名称ABCDE”。但是您可以完全成功地构建项目,只有一点点麻烦,因为您看不到UI设计(或者只是想清理代码)。尝试执行以下操作:在VS中,右键单击您的解决方案->属性->配置属性将打开一个新对话框,尝试将项目配置从“调试”更改为“发行”,反之亦然。之后,重新构建您的解决方案。它可以解决您的问题。

30秒到达战场

如果程序集与包含类的名称空间不同,则必须明确指定它。例如:-xmlns:Local="clr-namespace:MusicPlayer.Controls;assembly=MusicPlayer"

倚天杖

我已经知道通过清除Xaml Design Shadow Cache可以解决此问题。我在Visual Studio 2015 Update 1中遇到问题。在Visual Studio 2015中,缓存位于以下位置:%localappdata%\Microsoft\VisualStudio\14.0\Designer\ShadowCache处理:在解决方案资源管理器中右键单击该解决方案,然后选择“清理解决方案”关闭Visual Studio删除ShadowCache文件夹重新打开Visual Studio项目重建解决方案瞧,不再有名称空间错误。
随时随地看视频慕课网APP
我要回答