我们遇到了WPF数据网格的滚动问题。通过一些分析发现ScrollViewer.CanContentScroll = true是罪魁祸首。删除并使其失效,滚动问题得到修复。但昨天我分析了一个错误,即由于错误地绑定了5万条记录,WPF应用程序的内存占用量增加到超过1.3Gb。它仍然质疑即使是10k条记录的绑定能力。用户不想分页。 (它的一个要求,不能做太多的工作!)DataGrid滚动问题修复导致性能和内存问题
在进一步的读者发现设置ScrollViewer.CanContentScroll = false使UI虚拟化为假。这是使WPF绑定所有记录并将其呈现在屏幕上。这导致记忆足迹和性能问题爆发。
现在我们认为如果要绑定的记录最小,那么设置ScrollViewer.CanContentScroll = false,否则将其设置为true。
简而言之:我们要么停留在滚动问题或UI虚拟化上。有什么可以解决这两个问题吗?已阅读关于数据虚拟化的内容,但我们是否真的需要这么做?我是否可以从.net4.0中找到任何可以帮助我们的东西?
谢谢斯科特,我会尝试任何一个选项,并会在这里更新! – ioWint