增加WPF ObservableCollection性能

问题描述 投票:7回答:4

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

Word 2007 customize screen (来源:psu.edu

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

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

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

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

wpf performance listbox observablecollection
4个回答
© www.soinside.com 2019 - 2024. All rights reserved.