我有一个针对 MVVM 框架开发的 WPF 应用程序,其中 ViewModel 构造函数设置了一个带有 TimerCallback 的 Timer。
TimerCallback 检索 ObservableCollection 并将其传递给 VM 上的字段。
我有一个 CollectionViewSource,它的 Source 属性设置为 ObservableCollection。我正在使用 CollectionViewSource,因为我想对 Collection 启用过滤。
我发现当 TimerCallback 尝试将 ObservableCollection 传递到本地字段时,CollectionViewSource 的 Source 属性出现异常{“调用线程无法访问此对象,因为不同的线程拥有它。”}。
我理解这个例外,但我有两个问题:
- 如何解决这个问题?
- 更重要的是,为什么我只在使用 CollectionViewSource 时才会遇到这个问题?如果我删除 CollectionViewSource 并使 ObservableCollection 成为公共属性,那么我不会得到这样的异常。
任何帮助表示赞赏!谢谢, 德拉米