0

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

在执行期间,我收到一个错误。我发现 SO 中的一个线程已经在这里解决了这个问题:我在哪里可以获得线程安全的 CollectionView?

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

4

1 回答 1

2

我根本不认为这是一个设计缺陷。我们在 WPF 域模型中使用它们。我们只是确保每当我们更新我们的 observable 集合时,我们都会在 UI 线程上这样做。这很容易做到。我们还创建了自己的实现,因此每当我们更新我们的可观察集合时,我们都会禁用集合更新方法,直到所有项目都被添加或删除。这大大提高了装订性能。

于 2012-05-06T11:44:05.053 回答