gpt4 book ai didi

wpf - 清除 ObservableCollection

转载 作者:行者123 更新时间:2023-12-01 11:06:53 25 4
gpt4 key购买 nike

在 WPF 应用程序中,我有一个 ListView 绑定(bind)到我的 ViewModel 上的一个 ObservableCollection。

在应用程序运行期间,我需要删除并重新加载集合中的所有项目。我永远不需要添加或删除单个项目。

这会提示一个问题,ObservableCollection 是否真的有必要,我是否可以将 ListView 绑定(bind)到 IEnumerable 并在替换集合时调用 OnPropertyChanged?

由于 ObservableCollection 没有 AddRange 方法,因此在不替换集合的情况下重新加载的唯一方法是单独添加每个项目。这是否可能对性能产生任何重大影响,因为每添加一个项目都会触发 CollectionChanged?

最后,由于我正在使用 ICollectionView 来同步当前选中的项目,如果我确实替换了集合,是否需要再次调用 CollectionViewSource.GetDefaultView?我假设我可以重用现有的 CurrentChanged 处理程序。

谢谢本

最佳答案

我会说你的直觉是正确的:如果你从不添加或删除单个项目,但总是换掉整个列表,并且你相当确定需求不会改变,那么你最好不可观察列表(或 IEnumerable)和 INotifyPropertyChanged。

如果列表很大,这会提高您的速度。但最大的好处是可读性:它会更清楚地表达你的意图。下一个维护您代码的人不会四处奔波,试图找到所有可以在 ObservableCollection 中添加和删除元素的代码;他们将能够快速清楚地看到您总是换掉整个列表。

关于wpf - 清除 ObservableCollection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4610029/

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