gpt4 book ai didi

wpf - 提高 WPF ObservableCollection 性能

转载 作者:行者123 更新时间:2023-12-04 08:18:58 25 4
gpt4 key购买 nike

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

Word 2007 customize screen
(来源:psu.edu)

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

查看 ObservableCollection 它缺少 AddRange 方法,并且互联网上有各种可用的实现。我也知道 CollectionChanged 事件被不必要地触发了,因为每个项目都被复制到可怕的消耗性能上。

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

当数据绑定(bind)到 ObservableCollection 时,加载包含数千个项目的列表框时,我能做些什么来提高性能?您会推荐任何 AddRange 类型的实现吗?我在这里唯一的选择是在后台线程上运行它吗?因为我没有从数据库加载数据,所以看起来很昂贵?

最佳答案

我已经删除了 CollectionViewSource 和分组,并且项目在 1/2 秒内被复制,但是分组可能需要一分钟,因为虚拟化不适用于分组。

我需要决定是否使用 CollectionViewSource

关于wpf - 提高 WPF ObservableCollection 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1398519/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com