XAML 中的"The name does not exist in the namespace error"



我知道这是一个反复出现的错误,但我似乎无法绕过它。 智能感知确实可以识别我的自定义控件的名称,并建议添加正确的 using: 指令,但不仅 XAML 设计器找不到控件的名称,而且我也无法通过编译。

自定义控件是一个公共类,定义为

namespace MyApp.CustomControls
{
public class CustomTextBox : TexBox
{
...
}
}

在我的MainPage.xaml

<Page ...
xmlns:customControls="using:MyApp.CustomControls">
...
<customControls:CustomTextBox/>
...
</Page>

这不会在设计中呈现,也不会在编译中呈现。 这个答案和下面的答案对我不起作用。

错误消息:

Error XDG0008 The name "CustomTextBox" does not exist in the namespace "using:MyApp.CustomControls".

构建项目后,您的代码应该运行良好,并且使用上面的代码在我这边运行良好。尝试清理解决方案或删除项目中的 bin 和 obj 文件夹,然后再次重新生成应用。同时尝试重新启动您的 Visual Studio。如果仍然发生,您可以提供一个可重现的样本来帮助我研究这个问题。

我见过很多解决方案,说你应该重建项目,重新启动Visual Studio或重新启动机器。 对我有用的是在命名空间引用中指定程序集,即:xmlns:the_namespace="clr-namespace:the_namespace"- 产生上述错误。xmlns:the_namespace="clr-namespace:the_namespace;assembly=the_assembly"- 效果很好。

当我尝试在 XAML 中使用 Name 属性而不是使用 x:Name 时,我在嵌入式用户控件中收到了此错误的一个版本。换句话说,当我的 XAML 代码如下所示时:

myUserControls="using:MyUserControls"
<myUserControls:GraphCanvas Name="GraphCanvas" />

我收到一个错误,指出"名称"GraphCanvas"在命名空间"using:MyUserControls"中不存在"。当我将一行代码更改为以下代码时:

<myUserControls:GraphCanvas x:Name="GraphCanvas" />

一切都很好。

我在这里放弃这个解决方案,因为我花了大约一天半的时间才解决这个问题,这是我搜索错误字符串时发现的唯一堆栈溢出页面。希望我能省去别人我所经历的麻烦。

相关内容

最新更新