0

質問を明確に述べたかどうかはわかりませんが、2つの別々のページと1つのビューモデルがあります。元々は1ページしかありませんでしたが、ページが大きくなりすぎたため、これらを分割することにしました(具体的には、1ページにピボットアイテムが多すぎて、2ページでユーザーのデータをより適切に分離できるようになりました)。ビューモデルから単一のビューに特定のデータのみをロードできるかどうか疑問に思っていました。現在のところ、ビューモデルがすべてのデータをロードしようとしているため、アプリケーションがフリーズしているためです。ユーザーが表示している現在のページで使用されます。もしそうなら、私はどういうわけかビューモデルにロードするデータを知らせる必要があると思います。これをどのように達成しますか。または、ページごとに1つずつ、2つの個別のビューモデルを作成することをお勧めします。各ページに必要なデータのみがそれに応じて読み込まれ、アプリケーションがフリーズしないようにするには?ここでの標準は何か、CPU使用率や応答時間などの点で最も効率的なものは何かわかりません。

4

1 に答える 1

1

必要以上のデータをロードすることは、特にインターネット経由で行う場合、間違いなく問題になる可能性があります。なんでそんなの?ビューモデルを2つの部分に単純に分けてみませんか?VMの定義は基本的に次のように述べています:( Model-View-ViewModel(MVVM)の説明からの引用)

ビューモデルは、プレゼンテーションの分離、つまりビューのニュアンスをモデルから分離するという概念を導入しているため、トライアドの重要な部分です。モデルにユーザーの日付のビューを認識させて、日付を表示形式に変換する代わりに、モデルは単にデータを保持し、ビューは単にフォーマットされた日付を保持し、コントローラーは2つの間の連絡役として機能します。

ビューを分離した場合は、物事を単純にするためにVMも分離したほうがよいでしょう。

それでも、それがうまくいかず、データが何らかのサービスとして公開されていない場合は、VMの一部を使用してみませんか?表示されているページに従って必要なメソッドのみを呼び出し、必要なプロパティのみを設定します。すべてを実行するのではありません。また、UIがフリーズしないようにデータを処理するのが非常に大きい場合は、別のスレッドで実行します(もちろん、その間、プログレスバーを使用してデータを取得していることをユーザーに示します)。

説明したシナリオでは、これで十分です。

于 2012-09-14T19:50:06.077 に答える