1

シングルトン ツール ウィンドウ (Visual Studio を考えてください) を備えた MVVM MDI アプリでは、現在選択されているドキュメントに応じてツール ウィンドウの内容が変化します。現在 5 つのツール ウィンドウがあり、今後さらに増える予定です。

各ドキュメントのツール ウィンドウごとに、新しい View や ViewModel を再利用または作成できます。私の質問は、これらのオプションのいずれかを選択または除外する圧倒的な理由があるかどうかです。私が完全に見逃した別のオプションはありますか?

各ツール ウィンドウについて:

  1. ドキュメントごとに新しい View+ViewModel を作成します。ユーザーがドキュメントを切り替えると、ツール ウィンドウは View+ViewModel を切り替えます。このオプションではメモリ コストが高くなりますが、パフォーマンスは良好です。

  2. ドキュメントごとに ViewModel を作成しますが、View を再利用します。MVVM パターンではこれは可能ですが、UI の再レイアウトにはコストがかかる可能性があります。

  3. View と ViewModel の両方を再利用して、メモリ使用量を最小限に抑えます。ViewModel をリセットして別のデータ セットをロードすることは、正しく行うのが難しい場合があります。

4

2 に答える 2

0

私は最終的に再利用しましたが、オプション2Viewではありませんでした。ViewModel

元の質問に答えるには、オプション 3 を考慮から除外する必要があります。VM の再利用は無意味です。以前の VM を再利用できる場合は破棄することもできます。また、新しいデータ用に新しい VM を作成する方がはるかに簡単で、メモリ/パフォーマンス コストは無視できます。

オプション 1 と 2 は、レンダリングの複雑さ、パフォーマンスの目標、メモリ クォータによって異なります。ほとんどの場合、同じ UI でデータを切り替えることによるパフォーマンスへの影響は許容できるはずです。ビューを保存するのに必要なだけレンダリングに時間がかかる場合は、何か問題がある可能性があります。

于 2012-10-01T18:37:47.577 に答える
0

常に1を選択してください。これにより、あなたが言ったようにパフォーマンスが向上し、開発中の懸念事項がうまく分離されます。ビュー モデルは開いたままなので、さらに多くのことができます (開いているドキュメントのリストを表示するなど)。

于 2012-09-05T18:27:08.403 に答える