Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.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
在WPF GUI中提高速度的最佳集合_Wpf_Performance_Listview_Collections - Fatal编程技术网

在WPF GUI中提高速度的最佳集合

在WPF GUI中提高速度的最佳集合,wpf,performance,listview,collections,Wpf,Performance,Listview,Collections,我有一个listview,它包含一个“行”列表,从术语上讲,它包含一个“列”列表。目前,我对行和列都使用列表(即,我有一个列表,它是rows对象,我有一个列表,但随着数量的增加,更新GUI和程序整体性能所需的时间变得非常糟糕。此外,当项目(行中的列)出现时,GUI不会得到通知改变,所以我必须做一个项目。刷新,它似乎每次都刷新整个东西,增加了缓慢的性能 是否有其他类型的物体可以用来加速整个过程。这意味着它需要满足以下几点: -快一点 -当我添加新行时,listview会更新。如果可以,则只添加新行

我有一个listview,它包含一个“行”列表,从术语上讲,它包含一个“列”列表。目前,我对行和列都使用列表(即,我有一个列表,它是rows对象,我有一个列表,但随着数量的增加,更新GUI和程序整体性能所需的时间变得非常糟糕。此外,当项目(行中的列)出现时,GUI不会得到通知改变,所以我必须做一个项目。刷新,它似乎每次都刷新整个东西,增加了缓慢的性能

是否有其他类型的物体可以用来加速整个过程。这意味着它需要满足以下几点: -快一点 -当我添加新行时,listview会更新。如果可以,则只添加新行而不是整个listview。 -当我更改Columns对象时,GUI会更新。如果可能,只会影响修改后的Columns对象,因此不会更改整个Listview

请注意,在显示columns对象的场景后面有很多实际的计算。我目前正在对此进行优化,但我非常确定使用更好的集合会在这里有很大帮助


谢谢

我相信您正在寻找的是

添加项时,此集合类型将触发CollectionChanged事件。您不需要刷新集合,因为WPF控件支持此开箱即用


当更改元素时,将不会触发集合更改事件。如果您希望这些更新显示在UI上,则集合中的对象应实现

。此外,如果您发现自己同时添加多行,则可以考虑RangeEnabDeabVIEW。添加后,我将不需要添加任何新行,因此这应该可以完成工作。我尝试使用ObservableCollection,其中内容实现链接中提到的InotifyPropertyChanged接口,但在我的GUI中没有任何操作。是否必须对UI元素做任何操作才能允许更改?添加元素时,GUI中没有任何操作还是在编辑元素时?