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

时间:2012-03-05 18:33:01

标签: c# wpf user-controls namespaces custom-controls

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

解决方案

  1. Agent_Toolbox命名空间
    • MainWindow
    • CallTemplate(UserControl)
      • CallTemplate类
  2. CustomTextBoxes命名空间
    • NumberTextBox(CustomControl)
      • NumberTextBox类
  3. 我的问题是CallTemplate使用了NumberTextBox个自定义控件之一。我需要在CallTemplate语句中的NumberTextBox类中引用typeof类。即:

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

    但无论我尝试什么,我都无法让VS在这个实例中将CallTemplate识别为一个类。我尝试添加对NumberTextBox的引用,但它给我一个循环冗余的错误。我还尝试将CallTemplate分隔到一个单独的命名空间中,但是如果没有循环冗余, it 就找不到NumberTextBox。我想做的事情是将所有用户/自定义控件放入解决方案中的单独项目中,但是然后xaml无法找到CustomTextBoxes以将该框添加到CallTemplate中。我非常沮丧而且不知所措,并且确信这很简单,我很遗憾。

    有什么想法吗?

    修改

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

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

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

1 个答案:

答案 0 :(得分:0)

两个项目无法互相参考。如果他们这样做了,视觉工作室将如何知道首先建立哪个?当这种情况发生时,通常意味着它是一个设计缺陷。合并您的项目,或仅使用参考文献。