2012-02-04 56 views
1

私はdataGridでViewを持っています。このデータグリッドは、ObservableCollectionであるViewModelのプロパティをバインドします。MVVMパターンでDataGridを更新する

データグリッド内の一部のデータを編集します。フィールドはコードによって更新されるため、一部の操作に依存します。まあ、observableコレクションのアイテムをチェックすると、すべてのデータが正しいことがわかりますが、dataGridの情報はリフレッシュされません。

observableCollectionはアイテムの削除を追加するときだけobservableCollectionが変更プロパティイベントを発生させることがわかっているので、強制的にリフレッシュしたいと思います。

私はEntity Framework 4.1を使用しているため、dataGridのItemsSourceはDbSetのローカルなので、notifyPorpertyChangedをモデルedmxのクラスに実装する方法はわかりません。代わりに、強制的にデータグリッドをリフレッシュするようにします。

DataGridのItemsSourceをビンするために使用するViewModelのプロパティはローカルへの参照であるため、プロパティを設定するにはmyProperty = myContext.MyTable.Localを実行し、イベントPropertyChangedを発生させますViewModelで実装すると、myProperty = myContext.MyTable.Localを再度実行してイベントを発生させ、dataGridのリフレッシュを強制しようとしますが、動作しません。

どのような代替手段がありますか?

+1

最も簡単な方法は、独自のモデルを作成してエンティティをマップすることです。 – vorrtex

+0

ありがとうございます。最後に、.ttファイル内のクラスのすべてのプロパティにINotifyPropertyChangedを実装します。 –

答えて

1

バインディングモードがTwoWayに設定されていることを確認してください。あなたのプロパティOnPropertyChangedの設定部分に実装し、残りはそれ自身を処理する必要があります。

関連する問題