1

http://www.lhotka.net/weblog/DataRefreshInWPF.aspxで説明されているように

WPF コントロールが新しいデータ コンテキストに再バインドされないことがあります。Object.Equals具体的には、ビューモデルが論理的に等しいかどうかを確認するために実装するビューモデルを使用する場合。ここでの問題は、論理的に前のデータ コンテキストと等しい場合、コントロールが新しいデータ コンテキストに再バインドされないことです。これにより、コントロールがぐったりし、新しいビューモデルにバインドされなくなります。

最初に を に設定して、これを回避しDataContextましたnew object()。これにより、コントロールが新しいデータ コンテキストに再バインドされます。ただし、ビューモデルに を実装する別のビューモデルが含まれている場合、これは機能しませんObject.Equals。を使用してそのビューモデルにバインドされたビューは、再DataTemplateバインドされません。どうすればこれを回避できますか?

明らかに、WPF データバインディングは..ReferenceEqualsの代わりに使用する必要があります。Equals

更新:IEquatable<T>オーバーライドする代わりにサブ ViewModels を実装することで、今のところ解決しましたObject.Equals

4

1 に答える 1

0

Object.Equals をオーバーライドする代わりに、サブ ViewModels に IEquatable を実装させることで、今のところ解決しました。

于 2012-11-21T12:34:49.723 に答える