克隆自定义用户控件C#WPF-Easiet Way(浅拷贝)

克隆自定义用户控件C#WPF-Easiet Way(浅拷贝),c#,wpf,clone,C#,Wpf,Clone,嗨,我想克隆(浅克隆)一个自定义用户控件,如: ucButton uc; ucButton uc2; uc = uc2; 当我这样做时,编译器也希望我从画布中删除旧实例(uc) 使用: Canvas1.Children.Add(uc) Canvas2.Children.Add(uc2) 有什么建议吗 提前感谢遗憾的是,我不认为有一种简单的方法可以实现这一点:如果您的用户控件包含其他引用类型,那么它们应该成为通用的,还是也应该被复制 此外,您将无法获得UserControl上附加的依赖属性的

嗨,我想克隆(浅克隆)一个自定义用户控件,如:

ucButton uc;
ucButton uc2;
uc = uc2;
当我这样做时,编译器也希望我从画布中删除旧实例(uc)

使用:

Canvas1.Children.Add(uc)

Canvas2.Children.Add(uc2)
有什么建议吗


提前感谢

遗憾的是,我不认为有一种简单的方法可以实现这一点:如果您的用户控件包含其他引用类型,那么它们应该成为通用的,还是也应该被复制

此外,您将无法获得UserControl上附加的依赖属性的完整列表

就个人而言,我会将我的用户控件封装在xaml资源中的DataTemplate中,并根据需要从创建usercontrol的新实例

<DataTemplate x:Key="ucButton">
  <myControls:ucButton ... />
</DataTemplate>

我知道这不是你想要做的。如果不选择从xaml实例化,我的解决方案将无法工作

事实上,我建议您从代码背后实例化,但从XAML声明。如果要在代码隐藏中更改控件的某些属性,则此操作将不起作用。你到底想做什么?我想要一个包含Dataset数据库信息的Usercontrol,我想要将包含Dataset信息的Usercontrol对象克隆到一个新的Usercontrol对象。在我看来,将Dataset放在Usercontrol中是个坏主意。您不能在域层而不是视图层中管理它吗?很抱歉,如果我误导了您,我有一个域层,我正在处理来自另一个类的数据集。您不能在实例化第二个按钮时将相同的数据集引用给它吗?
var uc = template.LoadContent() as UserControl;
var uc2 = template.LoadContent() as UserControl;