WPF DataGrid在单元格可见时填充单元格

WPF DataGrid在单元格可见时填充单元格,wpf,datagrid,Wpf,Datagrid,我一直在使用Syncfusion虚拟网格,它的工作原理是对网格进行覆盖,覆盖每个可见的单元格!它为我提供了有关行和列的信息,以及一些单元格对象,让我可以设置该单元格的值、格式、颜色等 这允许在非常大的数据集上快速滚动,因为我只需要像dataSet.Tables[0].Rows[1000000][“LastName”].ToString()那样“读取”值 WPF DataGrid是否公开了类似的内容 编辑 我需要让自己更清楚一点——我知道虚拟化,当您进行分组等操作时,它会自动关闭。在20000个数

我一直在使用Syncfusion虚拟网格,它的工作原理是对网格进行覆盖,覆盖每个可见的单元格!它为我提供了有关行和列的信息,以及一些单元格对象,让我可以设置该单元格的值、格式、颜色等

这允许在非常大的数据集上快速滚动,因为我只需要像dataSet.Tables[0].Rows[1000000][“LastName”].ToString()那样“读取”值

WPF DataGrid是否公开了类似的内容

编辑 我需要让自己更清楚一点——我知道虚拟化,当您进行分组等操作时,它会自动关闭。在20000个数据集上运行了分组测试
排成一排让我的网格窒息了。 因此,我前面的问题是独立的! 网格是否允许我通过重写或回调来填充文本和进行格式化


谢谢

默认情况下,DataGrid使用虚拟化。其工作原理是动态创建和删除单元格,或者循环使用可见单元格并使用当前行的数据重新填充它们。通过使用“VirtualzingStackPanel.VirtualizationMode”属性可以关闭和调整此功能,并且在许多情况下会强制关闭(分组就是一个很好的示例)。这种虚拟化可能是天赐之物,也可能是诅咒。如果您有一组简单的需求,那么就很容易获得良好的性能。另一方面,如果您正在进行复杂的运行时绑定,包括触发器和自定义列,那么这将成为一场噩梦

以下是几条重要信息:


感谢您的快速回复,但这不是我的意思-我已编辑了上面的问题。我相信我知道答案是-不,没有-这将是令人失望的,但我将不得不接受这样一个事实,即拥有大量数据的数据网格本质上是缓慢的-即使启用了(默认)虚拟化@Marcel,我想你问错了问题,因为“读取x[100000].name.tostring()的值”正是回收虚拟化所做的。如果您需要分组数据的虚拟化,那么DataGrid可能不会帮助您。另一方面,如果是访问x[100000]本身的速度,那么这可能是一个数据虚拟化问题。这里有一个有趣的PDF主题:再次感谢ach-当我在虚拟化数据网格中有25000行以上时,当我拖动垂直滚动条时仍然存在延迟。现在很多,但我的老板很恼火,因为它的速度与Excel不匹配,Excel可以完美地处理超过一百万行和滚动!您是否已将虚拟化模式设置为回收?它比标准虚拟化快得多。此外,还有另一个名为“ScrollViewer.IsDeferredScrollingEnabled”的设置,它还可以通过在滚动完成时仅更新可见单元格来提高明显的性能。