Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么ObservableCollection具有与用户界面相关的限制?_C#_Wpf_Architecture_Mvvm_Observablecollection - Fatal编程技术网

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

C# 为什么ObservableCollection具有与用户界面相关的限制?,c#,wpf,architecture,mvvm,observablecollection,C#,Wpf,Architecture,Mvvm,Observablecollection,我正在构建一个WPF应用程序,在创建域模型时,我使用了observateCollection 我允许自己使用它,只是因为它显然属于System.Collections.ObjectModel命名空间。 在执行过程中,我收到了一个错误。我在中找到了一个线程,因此已经在这里处理了问题: 我的问题是:假设ObservableCollection位于System.Collections.ObjectModel命名空间中,为什么它有与用户界面相关的限制?这是架构缺陷还是故意的?在域模型中使用它是一种好的做

我正在构建一个WPF应用程序,在创建域模型时,我使用了
observateCollection

我允许自己使用它,只是因为它显然属于System.Collections.ObjectModel命名空间。

在执行过程中,我收到了一个错误。我在中找到了一个线程,因此已经在这里处理了问题:


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

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

这不是一个标题,这是一种疾病。这不是
ObservableCollection的限制,这是WPF.H.B的一个限制-请接受我的建议-这是我第一次使用SO来提问-将在将来改进我的标题:)svick-这是否意味着当集合没有限制时,我将从非ui线程向其中添加项目没有问题?这是CollectionView的一个限制,不是ObservableCollection…但是如果我想从非ui进程更新集合,会发生什么?如果我的应用程序中没有UI,会发生什么情况?在尝试更新时是否会出现相同的错误?-如果是这样,它显然不属于objectModel命名空间。如果没有UI或非UI进程,为什么要使用ObservableCollection?这些主要用于绑定到WPF UI对象。因为我想要在集合中更改某些内容时通知的功能。。。这在域模型中非常有用。但是如果它不是设计成独立的/在BL层中-我不会使用它。你可以很容易地做到这一点,而不用使用ObservableCollection。