6

MVVMLight を使用して WPF アプリケーションを作成しています。ViewModelLocator を使用してビューモデルを作成します。私の問題は、それらの間でパラメーターを渡すことです。

たとえば、次のような状況があります。

いくつかのエンティティを含むグリッドがあります。そのうちの 1 つをダブルクリックすると、そのエンティティの詳細を含む新しいビューを作成する必要があります。選択したアイテムIDを新しいビューのViewModelに送信する方法は?

4

2 に答える 2

3

通常、PrismのEventAggregatorやMVVMLightのMessengerなどのある種のメッセージングシステムを使用します。

どちらのシステムもページングシステムを思い出させます。アプリケーションのどの部分でもメッセージをブロードキャストでき、アプリケーションのどの部分でもメッセージをリッスンするようにサブスクライブできます。

したがって、DoubleClickコマンドはLoadItemMessage、選択されたアイテムを含むコンテンツをブロードキャストしId、アイテムの表示を担当するものはすべて、受信をサブスクライブし、をLoadItemMessages聞くたびにアイテムをロードしますLoadItemMessage

興味があれば、私のブログに、イベントシステムの概要を説明するMVVMを使用したViewmodel間の通信に関する簡単な記事があります。

于 2012-07-16T16:27:59.240 に答える
1

これは、ViewModelLocator (View xaml から ViewModel にパラメーターを渡すため) の問題です。あなたができることは、ViewModelLocatorクラスでTypeオブジェクトまたは(SelectedItemタイプの)Property Parameterを作成することです。これを Grid の SelectedItem にバインドしてから、新しい ViewModel に渡します。これが役立つことを願っています。注:オブジェクト型のプロパティを作成する場合は、忘れずにキャストしてください。

于 2012-07-16T16:02:39.100 に答える