私はコードファーストのCTP5データコンテキストを持っています。私はDataGridを持つWPFアプリを持っています。エンティティフレームワーク - コードファースト、UIで更新されないDbSet.Local
dataGrid.DataContext = _context.Customers.Local;
その後、私は、私はそれらのいくつかの作業を行うために別のクラスにこれらの顧客(顧客のリスト)を得、その後
_context.Customers.Add(customer1); and so on
_context.SaveChanges();
を使用して、いくつかのエンティティを追加:私のようなそののDataContextを設定します。
customerUpdater.Update(customers);
これは、時間がかかり、動作している各顧客のプロパティを更新します。例えば
foreach(var customer in customers) { customer.Name = "updated name"; }
私のWPF UIでは更新が表示されません。私が見ているのは、変更されていない顧客の元のリストだけです。 Customers.LocalはObservableCollectionですが、UIの更新が表示されない理由はわかりません。
プロパティの更新が発生するたびにSaveChanges()を呼びたくない場合は、ほぼ常にそうです。誰かがなぜこれが更新されないのか教えてもらえますか?
わかりましたので、INotifyPropertyChangedのの定型的なコードを回避するための方法はありませんか?私はむしろすべての財産のすべてを書いて自分の時間を費やすつもりはない。 ObservableCollectionのポイントであると思って、INotifyPropertyChangedを自動的に実装し、そのアイテムの中でプロパティが変更されたかどうかを通知するなど、私のためにすべてを世話してくれましたか? – Chad
observableCollectionは任意のタイプのアイテムを保持できるので、可能なクラスごとにプロパティが変更されるたびに通知を投げるのはあまり実用的ではないはずです(そして、通知を投げるプロパティを望まないかもしれない)ので、インターフェースを実装し、特にプロパティがその変更を通知するように選択することが最適と思われます。 –