4

10秒ごとにフィードをポーリングして更新を確認するMVVMプロジェクトがあります。フィードの結果は、ObervableCollectionを使用して表示されます。これはうまく機能しますが、ディスパッチされたタイマーをどこに置くことができるかわかりません。Model.DataServiceまたはViewModel.MainViewModelに含める必要がありますか?

ありがとう

4

3 に答える 3

0

あなたのビューは常に開いていて、ViewModel に存在する Observable Collection にバインドされていると思います。その場合、ViewModel は Observable Collection の所有者であるため、間違いなく ViewModel に時間を入れます。

于 2010-08-03T10:20:33.203 に答える
0

プロジェクトの詳細を知らずに正解はないと思います。

MVVM-Pattern について:
BusinessObjects の問題だと思いますか? (はい => Model.DataService に配置します)
それとも、View の機能ですか? はい => ViewModel.MainViewModel に配置します。

ユーザーがボタンを押した瞬間に利用可能なすべての更新を表示するビューを開発するつもりですか (更新を表示)? もしそうなら、ViewModel レイヤーにタイマーを配置することをお勧めします。

于 2010-06-24T09:50:36.897 に答える
0

これは、Observable.FromEvent メソッドを使用してReactive Frameworkを使用するのに最適な状況です。ポーリングではなく、これにより、イベントへのサブスクリプションを設定できます。時間が経過するまでイベントを無視して、それをトロールすることもできます (.Throttle(3000) で 3 秒の遅延)。

于 2011-01-26T05:20:24.820 に答える