我正在使用下面的方法来尝试克隆 TreeViewItem,但是一旦它命中XamlWriter.Save()
它就会给我一个 StackOverflowException。
触发此的代码是:
var b = Clone<TreeViewItem>(ViewTree.ItemContainerGenerator.ContainerFromIndex(0) as TreeViewItem);
其中 ViewTree 是我的 TreeView 的名称。
public static T Clone<T>(T from) {
string objStr = System.Windows.Markup.XamlWriter.Save(from);
System.IO.StringReader stringReader = new System.IO.StringReader(objStr);
System.Xml.XmlReader xmlReader = System.Xml.XmlReader.Create(stringReader);
object clone = System.Windows.Markup.XamlReader.Load(xmlReader);
return (T)clone;
}