0

私は、大規模な Silverlight アプリの 1 つを、PRISM と MVVM デザイン パターンを使用するように書き直そうとしています。

非常に一般的なシナリオは、ビュー内の DataGrid です。行をダブルクリックすると、ユーザーは ChildWindow を使用して、行によって表されるエンティティを編集できます。

コード ビハインドで DoubleClick イベントをキャプチャし、適切なタイプの新しい ChildWindow を作成し、DataContext を DataGrid.SelectedItem に設定したいと思います。

ただし、これが PRISM と MVVM でこのシナリオを処理する適切な方法ではないことはわかっています。

私は何についてのアドバイスが大好きです!(re: 私のタイトル... InteractionRequest がこれを行うための最良の方法のように思えますか?)

ありがとう...

編集:解決策として InteractionRequest を使用することにしました。ほとんどの場合、タイプとして「通知」を使用し、新しい ViewModel (各 ChildWindow には独自のものがあります) をコンテンツとして渡します。

4

1 に答える 1

1

私たちの場合、ChildWindow ビューは、独自のビューモデルを保証するのに十分なほど複雑でした。このビューは、データ グリッド ビューとあまり密接に結びついていません。

そのため、XAML で EventTrigger をデータ グリッド (実際には Telerik のデータ グリッドを使用) にアタッチしています。イベント トリガーは、InvokeCommandAction を使用してビュー モデルでコマンドを実行します。

このコマンドは、選択した項目をペイロードとして持つ集約イベントを発行します。このイベントは、ChildWindow ビューと対応するビュー モデル (イベント ペイロードをコンテキストとして使用) の作成を担当する中央アプリケーション コントローラーによって取得されます。

あなたのケースではインタラクション リクエストが使用される可能性があると思いますが、インタラクション リクエストの背後にある考え方は、非常に単純な [OK] または [はい/いいえ] のインタラクションです。一連のテキスト ボックスや検証などで限界を押し広げている可能性があります。

于 2012-08-31T18:33:37.030 に答える