以下のメソッドを使用して 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;
}