根据这篇文章deep copying,我正在尝试对我的 userControl 进行深层复制。所以在我的主视图模型中,我有:
public object Clone()
{
var cloneControl = (ISelectableViewModel) SelectedObject; //SelectedObject it's current userControl
return cloneControl.Clone();
}
我的用户控件里面也有简单的用户控件。所以 userControl Clone 方法的代码是:
public override object Clone()
{
var partikel1Clone = (UserControl05Partikel1ViewModel) MemberwiseClone();
partikel1Clone.UserControl1.ViewModel = (ISelectableViewModel) UserControl1.ViewModel.Clone();
return partikel1Clone;
}
而我简单的 userControl 的 Clone 方法是:
public override object Clone()
{
return MemberwiseClone();
}
问题是当我更改主对象时,我的克隆对象发生了变化。任何想法我错在哪里?