WPF UserControl Inheritence:找不到命名空间

时间:2013-09-06 19:32:21

标签: c# wpf user-controls

我跟随this article

我有一个如下所示的用户控件:

<common:ViewBase
    x:Class="MyNamespace.MyView"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:common="clr-namespace:Common;assembly=Common">
</common:ViewBase>

我的代码背后是这样的:

namespace MyNamespace
{
    public partial class MyView : ViewBase
    {
        public MyView()
        {
            InitializeComponent();
        }
    }
}

ViewBase看起来像这样:

namespace Common
{
    public class ViewBase : UserControl
    {
    }
}

但它拒绝构建,我不断收到以下错误: 类型&#34;常见:ViewBase&#34;没找到。验证您是否缺少程序集引用并且已构建所有引用程序集。

我根据另一篇文章的建议将ViewBase移动到一个单独的程序集中,但我也尝试将它放在同一个程序集中。有谁知道如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

我能够使用您的代码作为示例编译并具有单独的程序集。如果将它放在单独的程序集中,则必须确保在派生的UserControl工作之前构建它。如果它位于单独的程序集中,请验证您是否具有UserControl的正确引用。我必须在该项目构建之前添加PresentationCore,PresentationFramework,System.Xaml和WindowsBase。为了使用引用进行构建,我不得不从其他项目中排除派生的UserControl。

这是一只鸡肉和鸡肉。蛋情景。在我构建了另一个程序集之后,我可以构建派生的UserControl所在的程序集。

如果在单独的程序集中没有基本UserControl,请验证Xaml名称空间是否正确:

xmlns:common="clr-namespace:Common;assembly=Common" // separate assembly
xmlns:common="clr-namespace:Common" // same assembly

如果您仍有问题,请发布更多代码和/或更多错误消息(如果您有多个)。这可能是另一个错误信息,这是真正的罪魁祸首。