自定义/用户控件之间的命名空间问题

本文关键字:命名空间 问题 之间 控件 用户 自定义 | 更新日期: 2023-09-27 18:27:00

我有一个项目已经做了很长时间了,我遇到了一个引用问题。目前的解决方案大纲如下:

解决方案

  1. Agent_Toolbox命名空间
    • 主窗口
    • 调用模板(UserControl)
      • CallTemplate类
  2. CustomTextBoxes命名空间
    • 数字文本框(自定义控件)
      • NumberTextBox类

我的问题是CallTemplate使用了一个NumberTextBox自定义控件。我需要在typeof语句中引用NumberTextBox类中的CallTemplate类。即:

ParentControls parentControl = new ParentControls();
Visual parent = parentControl.GetParentControls(this, 3);
if (parent == typeof(CallTemplate))
{
    //Do something
}

但无论我做什么,我都无法让VS将这个实例中的CallTemplate识别为一个类。我尝试添加对NumberTextBox的引用,但它给了我一个循环冗余的错误。我还尝试将CallTemplate分离到一个单独的命名空间中,但it在没有循环冗余的情况下无法找到NumberTextBox。我想做的第一件事是将所有User/Custom控件放在解决方案中的一个单独项目中,但后来xaml找不到CustomTextBoxes,无法将该框添加到CallTemplate中。我之前非常沮丧和不知所措,并确信这是我错过的一些简单的东西。

有什么想法吗?

编辑:

我在CustomTextBoxes项目中添加了一个UserControl。VS工作室将其放在同一名称空间中,并生成

public partial class CallTemplate: UserContol
{
    public CallTemplate()
    {
         InitializaComponent();
    }
}

如果我尝试重命名名称空间,它会重命名整个名称空间,而不仅仅是这个文件的名称空间。因此,我在下面创建了一个新的名称空间,并将CallTemplate代码粘贴到其中。VS对InitializeComponent()方法犹豫不决,说它在当前上下文中不存在。基本上,我需要知道如何将命名空间代码的一部分迁移到不同的命名空间。

自定义/用户控件之间的命名空间问题

两个项目不能相互引用。如果他们这样做了,视觉工作室怎么会知道先建哪个?当这种情况发生时,通常意味着这是一个设计缺陷。合并你的项目,或者让参考资料只走一条路。