private IModelType CloneChildNode(IModelType node) { IModelType model = (IModelType)node.Clone(); if (model.GetType() == typeof(Folder)) { foreach (IModelType child in ((Folder)node).Children) { IModelType clonedChild = CloneChildNode(child); ((Folder)model).Children.Add(clonedChild); } } return(model); }