我对ObservableCollection不是很熟悉,但实现它似乎为我提供了一种基于任何添加/删除/替换/清除操作更新自定义集合状态的便捷方法。
但是,我看过的示例通常在WPF / WinForms数据绑定的上下文中引用它。
实现它是否会带来我应该警惕的任何不必要的开销/依赖,即。在我的场景中(简单地更新我基于添加/删除等添加到集合中的扩展状态)是否更好地实现Collection或类似并通过覆盖每个添加/删除/替换/清除操作来更新扩展状态?
答案 0 :(得分:2)
如果要在WPF / WinForms应用程序之外使用它,那么该集合没有强烈依赖性。它只是实现了一个方便的界面。
答案 1 :(得分:2)
ObservableCollection通常与UI关联的原因是,如果您使用MVVM模式,它在更新视图时提供了灵活性。话虽如此,我认为没有理由阻止您在非UI代码中使用它。有关性能相关信息,请参阅1。
答案 2 :(得分:0)
即使在版本3.0的框架中引入了ObservableCollection,它也引入了WPF,但它与UI概念没有很强的联系。此外,如果您阅读MSDN documentation,则该类型的描述不会以任何方式引用UI上下文:
表示动态数据集合,在添加,删除项目或刷新整个列表时提供通知。
事实是它非常适合UI场景,因为它已经实现了INotifiyPropertyChanged。所以回答你的问题,是的,在非UI场景中使用ObservableCollection完全没问题。