WPF 用户控件继承:找不到命名空间

本文关键字:找不到 命名空间 继承 用户 控件 WPF | 更新日期: 2023-09-27 18:30:32

我正在关注这篇文章。

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

<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
    {
    }
}

但它拒绝构建,我不断收到以下错误:找不到类型"common:ViewBase"。验证您没有缺少程序集引用,并且已生成所有引用程序集。

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

WPF 用户控件继承:找不到命名空间

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

这是一个先有

鸡还是先有蛋的场景。在生成另一个程序集之后,我就可以生成派生的 UserControl 所在的程序集。

如果在单独的程序集中没有基本用户控件,请验证 Xaml 命名空间是否正确:

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

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