我即将开发一个将用作规划工具的wpf应用程序。主要思想是显示一个表,行是人,列是天。每个单元格被拆分为两个较小的单元格,每个较小的单元格对应于分配给当天(该列)的员工(行)的任务。
应该是这样的:
/////////////第1天//第2天//第3天//第4天//第5天//第6天//第7天
People1 E1 / E2 E1 / E2 E1 / E2 E1 / E2 E1 / E2 E1 / E2 E1 / E2
People2 E1 / E2 E1 / E2 E1 / E2 E1 / E2 E1 / E2 E1 / E2 E1 / E2
People3 E1 / E2 E1 / E2 E1 / E2 E1 / E2 E1 / E2 E1 / E2 E1 / E2
我需要能够将customcontrol用作一个较小的单元格(一个“任务”)。
我尝试操作ItemsControl,DataGrid,但每次显示性能问题时:滚动(水平和垂直)都是滞后的,或者应用程序用于绘制组件的时间太重要了。
由于我似乎需要新的想法来解决性能问题,我想知道是否有其他人有同样的问题,并设法处理它..
有什么建议吗?
答案 0 :(得分:2)
ItemsControl
存在性能问题。您可以尝试切换为ListBox
或ListView
,因为它们基于VirtualizingStackPanel
。
此外,问题WPF - Virtualizing an ItemsControl?提供了有关虚拟化ItemsControl
的更多信息。
此外,announced at the recent Build conference .NET 4.5将对ItemsControl
进行相当大的性能改进。 Ira Lukhezo在一篇名为ItemsControl Performance Improvements in .NET 4.5的博客文章中总结了这一点。
答案 1 :(得分:0)
如果您使用的是DataGrid
,请确定,然后检查ListView
是否会提供更好的结果。
OR
我希望您将DataGrid与DataGridTemplateColumns一起使用,如果是,则显示CellEditingTemplate
中的Functional Graphical E1 / E2和Drawing
中E1 / E2的快照Celltemplate
。它们看起来都是一样的,但基于绘图的一个将在渲染时绘图为Freezable
时表现更好。