为什么ObservableCollection具有与用户界面相关的限制?

时间:2012-05-06 11:26:48

标签: c# wpf architecture mvvm observablecollection

我正在构建一个WPF应用程序,在创建我的域模型时,我使用了ObservableCollection<T> 我允许自己只使用它,因为它显然属于System.Collections.ObjectModel命名空间。

执行期间我收到错误。我发现SO中的一个帖子已经解决了这里的问题:Where do I get a thread-safe CollectionView?

我的问题是:假设ObservableCollection<T>在System.Collections.ObjectModel命名空间中,为什么它有与用户界面相关的限制?这是一个架构缺陷还是打算?在域模型中使用它是一种好习惯吗?

1 个答案:

答案 0 :(得分:2)

我认为这根本不是设计缺陷。我们在WPF域模型中使用它们。我们只是确保在我们更新可观察集合的任何时候,我们在UI线程上这样做。这很容易做到。我们还创建了自己的实现,以便在我们更新可观察集合时,我们禁用集合更新方法,直到添加或删除所有项目。这大大提高了绑定性能。