UserControls在NameSpace中找不到基类

时间:2014-08-09 18:57:31

标签: c# wpf

您好,我目前仍然坚持使用Visual Studio的这种奇怪的行为

我在这里有这个基类:

namespace IntelliListDemo.Controls
{
public class NodeControlBase : UserControl
{
    public NodeControlBase(NotYetGenericOutputNode internalNode)
    {
        this._internalNode = internalNode;
    }
    public NodeControlBase() { }
}
}

我有一些来自它的控件。一个例子:

namespace IntelliListDemo.Controls
{
/// <summary>
/// Interaktionslogik für Source.xaml
/// </summary>
public partial class SourceControl : NodeControlBase//, ISourceControl, INodeControl
{
    public SourceControl(IntelliListLibrary.Nodes.SourceNode internalNode) : base(internalNode)
    {
        InitializeComponent();
    }
}

和XAML:

<Controls:NodeControlBase x:Class="IntelliListDemo.Controls.SourceControl"
         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:Controls="clr-namespace:IntelliListDemo.Controls"

         mc:Ignorable="d" 
       >
</Controls:NodeControlBase>

所以我总是得到编译错误说

  

名称&#34; NodeControlBase&#34;在Namespace中不存在   &#34; CLR-名称空间:IntelliListDemo.Controls&#34;

1 个答案:

答案 0 :(得分:1)

当我遇到同样的问题时,发现了这个老问题。原来我在另一个文件中的XAML代码中出现语法错误,阻止了构建完成,因此无法解析对基类的引用。

我跟踪它的方式是注释掉与基本UserControl类相关的代码,并确保我有一个干净的编译 - 并确保在重新引入时检查所有派生的视图新代码!