

DataGridのItemsSourceをICollectionView型のプロパティにハインディングしており、レコード追加は子ウインドウのパラメータをモデルのメソッドに渡して追加しています。データベースへは問題なく追加できるのですが、追加した際にDataGridの表示が更新方法が解らず悩んでいます。

レコード追加後のDataGridのプロパティは親ウインドウのViewModelにあるため、追加用の子ウインドウのViewModelから変更をしています。

ここは、やはりコードビハインドへのコーディングをしないという縛りで、mvvmパターンの観点から、どのような構成(処理フロー)で組み立てた方がベターなのか、有識者の方のご意見、助言等を頂ければと思い質問してみました。

※フレームワークにLivetを使わせてもらっています。


CC BY-SA 3.0
2015-10-11T09:16:47.563
17532
2016-11-12T03:19:35.707
2015-11-23T06:16:59.060
76
12728
question
c# wpf mvvm
MVVMパターンを使用して新規レコード追加後のDataGridの表示更新


DataGridにバインドしているリストにINotifyCollectionChangedを実装する事で、追加・削除時にDataGridを更新させる事が可能です。

標準ではObservableCollectionが用意されています。  
<https://msdn.microsoft.com/ja-jp/library/ms668604(v=vs.110).aspx>


CC BY-SA 3.0
2015-10-12T01:06:10.457
17541
2015-10-12T01:06:10.457
4191
17532
answer


`ICollectionView`は`Refresh`メソッドを呼び出さないと更新されません。

`ICollectionView`の元にした`ObservableCollection`の`CollectionChanged`イベントに、`ICollectionView.Refresh`を呼び出すハンドラを登録する形がよくある実装かと。


CC BY-SA 3.0
2015-10-24T03:44:21.723
18013
2015-10-24T03:44:21.723
6119
17532
answer