2

WPF ツールキットの WPF DataGrid を使用しており、MVVM を採用しています。MVVM で MultiSelect を使用する際にいくつかの課題が見つかりましたが、単純なものが欠けているだけだと確信しています。ViewModel で "IsSelected" を使用して、DataGrid で行を選択するときにイベントを取得できます。これは、単一の選択に対してはうまく機能します。

「SelectionMode=Extended」を設定した場合でも、DataGrid の最初の行の選択でのみイベントを取得します。分離コードの SelectionChanged は各選択イベントを取得しますが、ViewModel でこれを機能させたいと思っています。おそらく、この multiSelect には、私が見逃している簡単な解決策があります。また、これらすべてを取得するために SelectedItems (複数) をコレクションにバインドしようとしましたが、SelectedItems は読み取り専用であるため、バインドできません。このメソッドをコードビハインドからViewModelに移動できないため、これを行う方法についてのアイデアをいただければ幸いです。

4

1 に答える 1

2

コード ビハインド ファイルで SelectionChanged イベントをリッスンし、呼び出しを ViewModel に委任できます。

MV-VM パターンは、コード ビハインド ファイルからすべてのコードを排除しようとしているわけではありません。それは、懸念を分離することです-ビューロジックをViewModelに入れ、ビューをできるだけ愚かにすることです。

具体的な例に興味がある場合は、WPF アプリケーション フレームワーク (WAF)の ViewModel サンプルを参照してください。

これが役立つことを願っています。

于 2009-11-17T20:14:19.430 に答える