如何在两个项目共享的 xaml 文件中添加用户控件的引用

Posted

技术标签:

【中文标题】如何在两个项目共享的 xaml 文件中添加用户控件的引用【英文标题】:how to add a reference of a user control in a xaml file which is shared by two projects 【发布时间】:2014-09-03 03:19:56 【问题描述】:

我在解决方案中创建了一个类库 (CustomMapControl),在这个类库中我创建了一个 UserControl(MapItemsControl)。 现在,我在两个项目(Portogruaro 和 Trieste)中都添加了这个类库的引用。 这是我的解决方案结构。Portogruaro 是主要项目,拥有所有文件,的里雅斯特几乎拥有 Portogruaro 添加作为参考的所有文件. 所以,问题是当我尝试使用 CustomMapControl 并将其从工具箱拖放到 xaml 中时,它不会构建并给出此错误

名称空间“clr-namespace:CustomMapControl”中不存在名称“MapsItemControl”

而且有时会显示这个错误

元素已经是另一个元素的子元素

这里是 xaml 命名空间

 xmlns:cc="clr-namespace:CustomMapControl"

这是 xaml 中的用户控件

 <cc:MapItemsControl />      <cc:MapItemsControl />

当我从不同的项目打开 xaml 文件时,错误发生了变化。 我想要在其中拥有此 UserControl 的 xaml 文件也在两个项目之间共享。 我很确定这是一个参考问题。 我不知道如何引用 CustomMapControl,因此它适用于两个项目。

【问题讨论】:

两个项目的目标平台(AnyCPU,x86)是否相同? @MuhammadSaifullah 是的,两个项目都一样 【参考方案1】:

您可能对在 wpf 项目中添加命名空间的方式有疑问。而不是:

xmlns:cc="clr-namespace:CustomMapControl"

试试这个:

xmlns:cc="clr-namespace:CustomMapControl;assembly=CustomMapControl"

【讨论】:

不,它不起作用...通过尝试它会显示此错误“元素已经是另一个元素的子元素” 那么恐怕你需要发布更多代码——尤其是你添加控件的表单。 我已经放了所有必要的代码,我的意思是我不认为还有什么要展示的......因为这只是一个非常简单的用户控制......我以前做过,但是有了这两个项目,我无法让它运行。 如果你觉得这样,那好吧。如果没有看到更多代码,我无法再说什么。通常这是有效的。 请您解释一下,您需要查看哪些代码?

以上是关于如何在两个项目共享的 xaml 文件中添加用户控件的引用的主要内容,如果未能解决你的问题,请参考以下文章

从其他 Xaml 文件绑定到用户控件中的元素

您如何在 WPF 中动态(通过代码)添加在 XAML 中制作的自定义控件?

在WPF中UserControl

在两个用户控件/视图之间传递数据

如何在一个 xaml 页面中使用多个用户控件?

小白求教,WPF中如何让xaml控件在其他.cs文件中使用