4

我有一个 MVVM 项目,它每 10 秒轮询一次提要以查看更新。提要的结果使用 ObervableCollection 显示。这很好用,但我不确定我可以将调度的计时器放在哪里。它应该在 Model.DataService 中还是在 ViewModel.MainViewModel 中?

谢谢

4

3 回答 3

0

这是使用 Observable.FromEvent 方法使用反应式框架的完美情况。这将允许您设置对事件的订阅,而不是轮询。您甚至可以小跑它(.Throttle(3000) 延迟 3 秒),在时间过去之前忽略事件。

于 2011-01-26T05:20:24.820 回答
0

我认为在不了解该项目的更多细节的情况下,不可能有正确的答案。

关于 MVVM 模式:
您认为这是您的 BusinessObjects 的问题吗?(是 => 将它放在 Model.DataService 中)
或者它是您的视图的一个功能?是 => 将它放在 ViewModel.MainViewModel 中。

您是否要开发一个在用户按下按钮时显示所有可用更新的视图(显示更新)?如果是这样,我建议将计时器放置在 ViewModel 层中。

于 2010-06-24T09:50:36.897 回答
0

我假设您的视图始终处于打开状态,并且绑定到驻留在您的 ViewModel 中的可观察集合。在那种情况下,我肯定会在 ViewModel 中投入时间,因为 ViewModel 是 Observable Collection 的所有者。

于 2010-08-03T10:20:33.203 回答