WPF DataGrid在单元格变得可见时填充它们

时间:2011-04-27 14:37:13

标签: wpf datagrid

我一直在使用Syncfusion虚拟网格,该网格基于对每个可见单元格触发的网格覆盖而工作!它为我提供了有关行和列的信息以及一些允许我设置该单元格的值,格式,颜色等的单元格对象。

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

WPF DataGrid是否有类似的内容?

EDIT 我需要让自己更清楚 - 我知道虚拟化,并且当你进行分组等时它会自动关闭。在20,000的数据集上启用分组运行测试 行让我的网格自我窒息。 因此,我之前的问题独立存在! 有没有什么方法网格允许我填写文本并通过一些覆盖或回调做一些格式化?

由于

1 个答案:

答案 0 :(得分:1)

DataGrid默认使用虚拟化。这可以通过动态创建和删除单元格,也可以通过回收可见单元格并使用当前行的数据重新填充它们来实现。这可以通过播放'VirtualizingStackPanel.VirtualizationMode'属性来关闭和调整,并在许多情况下被强制关闭(分组是一个很好的例子)。这种虚拟化可能是天赐之物和诅咒。如果您有一套简单的要求,那么很容易获得良好的性能。另一方面,如果你正在进行复杂的运行时绑定,包括触发器和自定义列,那么它就变成了一个噩梦。

几个重要的读物:

http://msdn.microsoft.com/en-us/library/cc716879.aspx

http://msdn.microsoft.com/en-us/library/system.windows.controls.virtualizingstackpanel.aspx