Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WPF:显示大量自定义控件_C#_Wpf_Wpfdatagrid - Fatal编程技术网

C# WPF:显示大量自定义控件

C# WPF:显示大量自定义控件,c#,wpf,wpfdatagrid,C#,Wpf,Wpfdatagrid,我将要开发一个wpf应用程序,它将被用作规划工具。其主要思想是显示一个表,行是人,列是天。每个单元格分为两个较小的单元格,每个较小的单元格对应于当天分配给员工(行)的任务(列) 应该是这样的: /////////////第1天//第2天//第3天//第4天//第5天//第6天//第7天 人1 E1/E2 E1/E2 E1/E2 E1/E2 E1/E2 E1/E2 E1/E2 E1/E2 E1/E2 人2 E1/E2 E1/E2 E1/E2 E1/E2 E1/E2 E1/E2 E1/E2 E1/E

我将要开发一个wpf应用程序,它将被用作规划工具。其主要思想是显示一个表,行是人,列是天。每个单元格分为两个较小的单元格,每个较小的单元格对应于当天分配给员工(行)的任务(列)

应该是这样的:

/////////////第1天//第2天//第3天//第4天//第5天//第6天//第7天

人1 E1/E2 E1/E2 E1/E2 E1/E2 E1/E2 E1/E2 E1/E2 E1/E2 E1/E2

人2 E1/E2 E1/E2 E1/E2 E1/E2 E1/E2 E1/E2 E1/E2 E1/E2 E1/E2

人3 E1/E2 E1/E2 E1/E2 E1/E2 E1/E2 E1/E2 E1/E2 E1/E2 E1/E2

我需要能够将customcontrol用作一个较小的单元格(一个“任务”)

我试图操纵ItemsControl、DataGrid,但每次它都会显示性能问题:要么滚动(水平和垂直)太慢,要么应用程序绘制组件所用的时间太重要

由于我似乎需要新的想法来解决性能问题,我想知道是否有其他人也有同样的问题,并设法解决了


有什么建议吗?

ItemsControl
已知存在性能问题。您可以尝试切换到
ListBox
ListView
,因为它们基于
virtualzingstackpanel

此外,该问题还有关于虚拟化
ItemsControl
的更多信息


此外,.NET4.5将包含对
ItemsControl
的显著性能改进。Ira Lukhezo在一篇名为

的博客文章中总结了这一点。如果您使用的是
DataGrid
,请检查
ListView
是否提供了更好的结果


我希望您将DataGrid与DataGridTemplateColumns一起使用,如果是这样,请在
CellEditingTemplate
中显示功能图形E1/E2,并在
Celltemplate
中显示E1/E2的快照
Drawing
。它们看起来都一样,但是基于图形的一个会表现得更好,因为图形在渲染时是可自由释放的。

您是否尝试过对ItemsControl容器进行虚拟化?当然,性能更好,但刷新显示时仍有轻微延迟(在5到10秒之间显示40行120列)。在任务用户控件中,您是否使用样式或其他资源来制作画笔?例如,将所有内容放入样式和其他资源中确实可以提高性能,因为默认情况下样式和画笔是静态的。如果虚拟化还不够,我所能想到的就是用户控件优化。您的XAML看起来如何?我最近创建了一些ing类似,但我只渲染了存在的事件,而不是每个单元格。也许你可以采用类似的方法?awww,不支持W2K3?或win XP?我很快就会在工作场所使用它。。。。