我有一个包含Datagrid的WPF窗口。 窗口以全屏方式启动,并填充数据网格。 然后我恢复窗口,然后突然进程开始需要内存,直到它崩溃。 在调整大小之前和之后拍摄内存的快照,我看到越来越多的DataGridCellItemAutomationPeer和DataGridItemAutomationPeer类型的对象需要内存。
用户Gdir指出我已经报告了类似的问题(WPF System.OutOfMemoryException System.Windows.Automation.Peers.AutomationPeer.UpdateSubtree),但似乎情况并非如此。
奇怪的是,它似乎只发生在某些机器上,而我至少有一台机器不会出现问题。
深入挖掘,看起来像方法
protected override System.Windows.Automation.Peers.AutomationPeer OnCreateAutomationPeer()
仅在某些计算机上调用。 触发对该方法的调用的判别式是什么?
指导我解决问题的任何提示?
谢谢!
答案 0 :(得分:0)
(这只是部分答案)
事实证明,获取DataGrid源代码并删除方法
protected override System.Windows.Automation.Peers.AutomationPeer OnCreateAutomationPeer()
从所有与DataGrid相关的类中,问题就消失了。 怀疑是DataGridAutomationPeer类中的一些错误在某些特定情况下会产生无限循环。
我还不清楚为什么调用OnCreateAutomationPeer以及为什么问题只发生在某些机器上。