我有一个 DataGrid,其中有一个 DataTable 设置为其 ItemsSource。
DataTable 包含 24 列和约 1600 行(实际上我稍后必须加载更多行,但目前这已经够麻烦的了)。
尽管将列和行的虚拟化设置为活动状态,DataGrid 仍需要大约 30 秒才能显示这 1600 行。
之后,垂直滚动效果很好,水平滚动则很滞后,尽管您会期望相反的情况。
如果我运行内存分析器,我可以验证应用程序使用的大部分内存来自 DataGridCells、Borders、ContentPresenters 和 Textblocks。对我来说,这表明网格没有正确虚拟化其行。
任何人都可以确认 DataGrid 的虚拟化存在问题吗?或者在这种控制的实施过程中是否存在某种臭名昭著的陷阱?
期待任何类型的意见/建议。谢谢 :)
我已经解决了这个问题。
我的 DataGrid 位于 ScrollViewer 中,它可以在其中无限拉伸。所以它被愚弄了,认为一切都是可见的,这就是为什么它不会虚拟化它的项目。
我删除了 ScrollViewer(无论如何,DataGrid 都有自己的滚动条),现在它可以完美地工作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)