1

検索ビューの選択に依存する検索ビューと詳細 (2-3) ビューがあります。選択すると、検索ビュー モデルは、ビューを Main viewModel に変更するメッセージを送信し、選択された ID を含むメッセージも送信します。

メイン ビュー モデルがビュー変更メッセージを受信すると、詳細ビ​​ュー 1 が呼び出されます。これは、Locator の datacontext で指定されたビュー モデルを探します。このビューの詳細が確認されると、検索で選択したユーザーの詳細とともに詳細ビュー 2 が表示されます。

MIX 11の動画を見ていました。アイデアを得た。しかし、MVVM toolkit 3 を使用してこれを実行したいと考えています。

したがって、すべての詳細ビュー モデルを含むクラスを作成し、選択が変更されたイベントで必要なビューモデル オブジェクトを設定すれば、うまくいくはずです。しかし、Locator で静的 VM を宣言する必要がありますか? ビューがタイプ detailviewmodel1 のデータ コンテキストを探している場合に、ロケーターの静的 VM の代わりにこのクラスを使用することをビュー モデル ロケーターに伝えるにはどうすればよいですか?

4

1 に答える 1

0

動的 ViewModel が必要かどうかはわかりません。ViewModel は、View にフックを提供する 1 つ以上のモデルの単なるラッパーです。そうは言っても、ビューを既に知っている場合は、ビューモデルを既に知っているので、設計時に実装する必要があります。

あなたの投稿を読むと、1 つのビューに対して複数の ViewModel を探しているように見えます。これが正しければ、依存性注入を調べる必要があります。これにより、特定の基準に基づいて VM をビューに挿入できます。これに対する私の個人的な推奨は ninject です。

おそらく、MVVM Light の経験が豊富な人が来て、より多くの情報を提供してくれるでしょう。私は Caliburn.Micro の仲間です。MVVM Light よりも少し複雑ですが、コンストラクターの注入やその他の点で柔軟性が少し高くなります。

于 2011-09-11T12:33:17.987 に答える