この記事のディープ コピーによると、userControl のディープ コピーを作成しようとしています。したがって、私のメインのviewModelには次のものがあります。
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();
}
問題は、メイン オブジェクトを変更すると、複製されたオブジェクトが変更されることです。どこが間違っているのですか?