http://www.lhotka.net/weblog/DataRefreshInWPF.aspxで説明されているように
WPF コントロールが新しいデータ コンテキストに再バインドされないことがあります。Object.Equals具体的には、ビューモデルが論理的に等しいかどうかを確認するために実装するビューモデルを使用する場合。ここでの問題は、論理的に前のデータ コンテキストと等しい場合、コントロールが新しいデータ コンテキストに再バインドされないことです。これにより、コントロールがぐったりし、新しいビューモデルにバインドされなくなります。
最初に を に設定して、これを回避しDataContextましたnew object()。これにより、コントロールが新しいデータ コンテキストに再バインドされます。ただし、ビューモデルに を実装する別のビューモデルが含まれている場合、これは機能しませんObject.Equals。を使用してそのビューモデルにバインドされたビューは、再DataTemplateバインドされません。どうすればこれを回避できますか?
明らかに、WPF データバインディングは..ReferenceEqualsの代わりに使用する必要があります。Equals
更新:IEquatable<T>オーバーライドする代わりにサブ ViewModels を実装することで、今のところ解決しましたObject.Equals。