1

MVVM ライト メッセージングを使用して、ナビゲーション中にあるページから別のページに値を送信しようとしています (たとえば、選択されたアイテムの ID を編集ページに送信します)。したがって、リスト ページのビューモデルはメッセージを送信してから、編集ページにリダイレクトするナビゲーション メッセージをビューに送信します。編集ページのビューモデルは、ページへのナビゲーションが発生したときにのみ作成されます。編集ページのビューモデルでこのイベントに登録すると、メッセージが表示されないのですか? これに対する最善の解決策は何ですか?

前もって感謝します。

4

1 に答える 1

3

最善の解決策は、メッセージングの代わりにクエリ文字列を使用することです。クエリ文字列を使用しない場合は、アプリケーションが非アクティブ化(トメストーン)され、ユーザーが[戻る]をクリックすると、アプリケーションがメッセージを受信せずに2番目のページをロードするなどの状況に対処する必要があります。

ただし、このパスを続行する場合は、必要に応じてではなく、ページのViewModelがすぐに(たとえばctorで)作成されるようにViewModelLocatorを変更できます。App.xamlが読み込まれるとすぐにViewModelLocatorが作成されるため、すべてのビューモデルがすぐに作成されることがわかります。ビューモデルがコンストラクターでメッセージを登録している限り、メッセージを受信する必要があります。

于 2010-09-21T13:11:49.567 に答える