增加WPF ObservableCollection性能

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了增加WPF ObservableCollection性能相关的知识,希望对你有一定的参考价值。

目前我有两个模仿以下功能的WPF列表框

Word 2007 customize screen (来源:psu.edu

我正在使用2个ObservableCollections来允许用户选择他们需要的任何项目(灵活性是这里的关键)。主要问题是我有两千个项目在两个列表框中分组。总而言之,设计工作非常好(有几十个项目),但我的绊脚石是用户在屏幕冻结时从左到右复制所有可用的项目(在不同的线程上运行的时间?)。

看看ObservableCollection它没有AddRange方法,互联网上有各种各样的实现。我也知道CollectionChanged事件是不必要的被触发,因为每个项目都被严重复制在排水性能上。

很可能我不得不允许用户在将来从超过10,000个项目的组中进行选择,这听起来是个坏主意,但由于列表框(CollectionViewSource)上的分组工作得很好,但是不可协商,但是关闭两个列表框的虚拟化的副作用

在数据绑定到ObservableCollection时,如何在加载包含数千个项目的列表框时,如何提高性能?是否有推荐的AddRange类型实现?我在这里唯一的选择是在后台线程上运行它,这看起来很昂贵,因为我没有从数据库加载数据?

以上是关于增加WPF ObservableCollection性能的主要内容,如果未能解决你的问题,请参考以下文章

WPF每次打开和关闭窗口时增加内存

添加数据时 WPF DataGrid 的高度会增加

WPF APP 启动时增加特殊逻辑

避免 WPF 状态栏在窗口垂直调整大小时增加其高度

WPF 精修篇 WPF 使用ActiveX

增加WPF ObservableCollection性能