将ViewModel对象保存在Dispatcher中被认为是不好的做法吗?

sti*_*k81 6 .net c# dispatcher mvvm

我的WPF应用程序使用MVVM模式构建.ViewModel将与服务器异步通信,并且当返回请求的数据时,将触发ViewModel中的回调,并且它将对此数据执行某些操作.这将在不是UI线程的线程上运行.有时这些回调涉及需要在UI线程上完成的工作,所以我需要Dispatcher.这可能是这样的事情:

  • 将数据添加到ObservableCollection
  • Trigger Prism命令将设置要在GUI中显示的内容
  • 创建某种WPF对象.

我试图避免使用后者,但我发现这里的两个第一点是ViewModels要做的合理的事情.所以; 是否可以让ViewModel保持Dispatcher能够为UI线程调用命令?或者这被认为是不好的做法?为什么?

kyo*_*ryu 3

由于 ObservableCollection必须在它所属的线程上更新(假设是 GUI 应用程序),并且 ObservableCollections 应该是 ViewModel 的一部分,因此 ViewModel 具有 Dispatcher 的情况很明显。

我看不到它是模型的一部分。