2011-07-12 6 views
2

データグリッド内のいくつかの列をドラッグアンドドロップした後、新しい注文をMVVM形式でViewModelに渡すにはどうすればよいですか?DataGridの列を並べ替えた後に新しい列の順序を取得する方法は?

EventArgsは非常に奇妙です。

DataGrid_Reorderedは、単一の列のみを含むDataGridColumnEventArgsを渡します。私はそれと何をするべきですか?列の新しい順序をどのように知っていますか?

明らかに、列の順序はDisplayIndexによって決まりますが、古い値と新しい値とはどのように関連していますか?

多くのおかげで、私はアプリの再起動後の列順の持続後にしている推測している:-)

+0

たぶん、この答えはあなたのために有用である http://stackoverflow.com/questions/1379925/wpf-listview-column-reorder-event – LPL

答えて

0

ニースの問題。

私はグリッドのファンではありませんので、具体的なアドバイスはありませんが、あなたにはあなたのビューモデル(または新しいビューモデル)を使用して、列とその順序をモデル化します。

AutoGenerateColumnsを無効にし、Xamlで必要な列を定義し、各列のHeaderプロパティとDisplayIndexプロパティで双方向バインディングを使用してVM内の適切な値にバインドする必要があると思います。

MVVM LightのEventToCommandビヘイビアを使用すると、グリッドのColumnReorderingイベントとビューモデルのRelayCommandにバインドできます。 VMは列の順序を保持する責任があるので、イベントが発生したときにVMがその列を保持します。

HTH

関連する問題