“MyProject”类型中不存在类型名称“GUI”

时间:2017-09-07 14:12:58

标签: c# wpf xaml

我把头发拉出来,无法弄清问题是什么。

  • 项目名称空间MyProject
  • GUI elements namespace MyProject.GUI

MyProject.GUI内,有三个元素:FormKeyboardSelectWrapper

我们去(没有.xaml,只有.cs)

namespace MyProject.GUI
{
    public class SelectWrapper : Grid
    ...

和键盘cs

namespace MyProject.GUI
{
   public partial class Keyboard : UserControl
   {
   ...

和键盘xaml

<UserControl 
         x:Class="MyProject.GUI.Keyboard"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

并形成.cs

namespace MyProject.GUI
{
    public partial class Form : Window
    ...

并形成XAML

 <Window      
         x:Class="MyProject.GUI.Form"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
         xmlns:gui="clr-namespace:MyProject.GUI"

      ...

      <gui:Keyboard
      <gui:SelectWrapper

编译器(以及设计者)抱怨道:

  

“MyProject”

类型中不存在类型名称“GUI”      

“MyProject”

类型中不存在类型名称“GUI”      

名称“SelectWrapper”在命名空间“clr-namespace:MyProject.GUI”中不存在。

它不会抱怨键盘(只有表格)。请协助。

2 个答案:

答案 0 :(得分:1)

Keyboard类位于另一个名称空间,即InvoiceFlow.GUI,不是吗?

<Window      
     x:Class="MyProject.GUI.Form"
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
     xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
     xmlns:gui="clr-namespace:MyProject.GUI"
 xmlns:kbd="clr-namespace:InvoiceFlow.GUI"
 ...
  <kbd:Keyboard
  <gui:SelectWrapper

您需要确保没有其他编译错误,以便您能够构建。

答案 1 :(得分:1)

如果编译器说MyProject类型,我会假设某个地方有某个类型的名称。我能够通过在MyProject命名空间中定义名为MyProject.GUI的类来重现这一点:

namespace MyProject.GUI
{
    public partial class Form : Window
    {
        public Form()
        { ... }
    }

    public class MyProject
    {
    }

    public class SelectWrapper
    {
    }
}

XAML

<Window 
    x:Class="MyProject.GUI.Form"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:gui="clr-namespace:MyProject.GUI"
    mc:Ignorable="d"
    Title="MainWindow" Height="350" Width="525">
    <Window.Resources>
        <gui:SelectWrapper
            x:Key="test"
            />
    </Window.Resources>
  

错误CS0426类型名称“GUI”在“MyProject”类型中不存在   错误CS0426类型名称“GUI”在“MyProject”类型中不存在   错误名称“SelectWrapper”在名称空间“clr-namespace:MyProject.GUI”中不存在。

因此,我会在项目中或解决方案的其他位置查找该名称的类。