【问题标题】:"The name does not exist in the namespace error" in XAMLXAML 中的“名称空间错误中不存在该名称”
【发布时间】:2018-11-10 04:43:51
【问题描述】:

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

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

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

在我的MainPage.xaml

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

这不会在设计中呈现或编译。 This answer 和下面的不适合我。

错误信息:

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

【问题讨论】:

  • 从您链接的链接中,尝试使用clr-namespace 而不是using
  • 也不工作。据我所知,using 是 UWP 中使用的语法。
  • 对,你链接了 wpf
  • 这是为了证明我已经完成了我的研究并且没有任何工作,并避免 duplicate 标志指向一个过时的问题
  • 你能提供确切的错误信息吗?

标签: c# visual-studio-2017 uwp-xaml


【解决方案1】:

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

【讨论】:

  • 没错!就我而言,解决方案是删除我的存储库(意味着所有项目文件)并再次克隆它。这样你就可以确保即使是那些被 git 忽略的文件也会被删除。
【解决方案2】:

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

【讨论】:

    【解决方案3】:

    当我尝试在我的 XAML 中使用 Name 属性而不是使用 x:Name 时,我在嵌入式 UserControl 中遇到了此错误的一个版本。换句话说,当我的 XAML 代码看起来像这样时:

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

    我收到一个错误,提示“名称“GraphCanvas”不存在于命名空间“using:MyUserControls”中。当我将一行代码更改为:

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

    一切都做得很好。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-17
      • 2018-07-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-06
      相关资源
      最近更新 更多