1

2つのグリッドを表示する「親」コントロールのViewModelがあります。最初のグリッドには親情報があり、2番目のグリッドには選択した親に関連する子が表示されます。

これは問題なく正常に機能します。ただし、問題は、更新ボタンを提供する必要があることです。クリックすると、ユーザーは選択した親の子を表示し、それらを削除するかどうかを選択します。これは、関連する子を表示するのと同じグリッドを含む子ウィンドウを介して行われますが、グリッドは「有効」モードです。

したがって、問題は、MVVMでどのパターンを使用して次のことを行うかです。1)子ウィンドウのデータを取得しますか?2)子ウィンドウ内で更新が成功したら、親を更新しますか?

ありがとう、

4

1 に答える 1

2

コントロールのビューモデルと子ウィンドウのビューモデル間の通信を可能にするために、メディエーターパターンの利用を検討する必要があります。

メディエーターパターンの基本的な概要については、この回答を参照してください。このパターンを使用して、実行できる1つのアプローチは、[更新]ボタンがクリックされたときに、子ウィンドウを表示するリスナーによって処理されるメッセージを公開することです(メッセージは子ウィンドウのデータを運び、前にデータコンテキストに渡されます)表示されています)。更新が成功すると、子ウィンドウは親がリッスンするメッセージを公開し、このメッセージには親を更新するための情報が含まれます。

また、PRISM4ガイダンスの「ユーザーインタラクションパターン」セクションも参照してください。PRISMを使用していない場合でも、採用されている一般的な原則とアプローチはよく考えられています。

于 2011-05-20T16:49:55.773 に答える