我应该使用什么WPF控件来构建高性能网格?
我希望能够有单元格级别控制,这样我就可以更新一个单元格,并让网格只重新绘制该单元格。
DataGrid似乎没有提供单元格级别控制。
我需要支持10000行和大量的单元格更新(比如每秒200)。
谢谢
如果你不想尝试第三方数据网格,那么你至少给WPF数据网格一个尝试吗?它支持行和列级别的虚拟化。加上单元格级别控制可通过DataGridCell类型的CellStyle。你甚至可以将任何行为附加到DataGridCell上,然后获得对它的独占访问权,钻取到它的可视化树中,并在本地对其内容执行任何类型的性能改进。
我一直在使用WPF数据网格来满足各种需求(没有行定义和组样式的分层数据显示,频繁的数据更新,大量的列,频繁的可编辑和基于验证的场景,装饰虚拟化单元格和延迟滚动与滚动启发式的猜测等)
你可以把它发挥到极致。Codeplex网站上有基于WPF数据网格的最新工具包的源代码。
如果有帮助请告诉我
如果你需要性能,你最好的选择是测量,测量,测量。
使用您正在查看的每个DataGrid类构建一个快速原型,使用"真实的"示例数据。
看看哪些表现好,哪些表现不好。
用于WPF的Telerik RadGrid支持行虚拟化和列虚拟化,可能正是您正在寻找的。
我不会先验地拒绝使用winform方法,因为数据量巨大且更新速度相对较快。在类似的场景中,您可以管理更多的数据,而不会显著影响性能。
我是WPF的忠实粉丝,但它并不总是能解决所有问题。