gpt4 book ai didi

c# - 尝试克隆用户控件时使用 XamlWriter.Save() 时发生 StackOverflowException

转载 作者:太空宇宙 更新时间:2023-11-03 21:55:26 26 4
gpt4 key购买 nike

我正在使用以下方法尝试克隆 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;
}

最佳答案

检查这个 TreeView 中是否有一些循环。例如:某些 TreeView 节点(或它的子节点)有一个指向父节点的子节点。 StackOverflowException 通常用于内存不足的递归。

关于c# - 尝试克隆用户控件时使用 XamlWriter.Save() 时发生 StackOverflowException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12518210/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com