ObservableCollection<T>在非UI场景中是否合适

4
我对ObservableCollection并不是很熟悉,但实现它似乎为我提供了一种方便的方式来基于任何添加/删除/替换/清除操作更新自定义集合的状态。然而,我查看的示例通常在WPF/WinForms数据绑定的上下文中引用它。在我的情况下(仅根据添加/删除等更新扩展状态),实现它是否会带来任何不必要的开销/依赖性?是否最好只实现Collection或类似的内容,并通过覆盖每个添加/删除/替换/清除操作来更新扩展状态?
3个回答

2

如果你想在WPF / WinForms应用程序之外使用它,那么该集合与它没有强依赖关系。它只是实现了一个方便的接口。


感谢您的回复,Tejs。我希望是这样的情况。 - Chris

2

ObservableCollection通常与UI相关联的原因是,如果您使用MVVM模式,则它提供了灵活性来更新视图。话虽如此,我认为没有理由阻止您在非UI代码中使用它。有关性能相关信息,请参见1


谢谢Sandeep,很有趣看到一些性能数据。非常感谢。 - Chris

0

即使ObservableCollection在3.0版本的框架中引入了WPF,但它与UI概念没有强烈的联系。如果您阅读MSDN文档,则该类型的描述不以任何方式涉及UI上下文:

表示提供通知的动态数据集合,当添加、删除项目或整个列表刷新时提供通知。

事实上,它非常适用于UI场景,因为它已经实现了INotifiyPropertyChanged。所以回答您的问题,是的,在非UI场景中使用ObservableCollection完全没问题。


谢谢Ucodia。我已经接受了Sandeep的答案,因为它包含了一些性能数据来支持观点。正如你所说,MSDN文档让我相信它是合适的,但是当你搜索时有很多将它用于UI的例子,我想确认一下。 - Chris

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接