1

http://www.lhotka.net/weblog/DataRefreshInWPF.aspx所述

WPF 控件有时不会重新绑定到新的数据上下文。特别是在使用实现Object.Equals来查看视图模型是否在逻辑上相等的视图模型时。这里的问题是,如果它在逻辑上等于前一个,则控件不会重新绑定到新的数据上下文。这会导致控件变得柔软,它们不会绑定到新的视图模型。

DataContext我通过首先将 设置为 a 来规避这个问题new object()。这可以确保控件重新绑定到新的数据上下文。但是,当视图模型包含另一个实现Object.Equals. 使用 a 绑定到该视图模型的视图DataTemplate不会重新绑定。我该如何解决这个问题?

显然 WPF 数据绑定应该使用ReferenceEquals而不是Equals..

更新:我现在通过实现子 ViewModelsIEquatable<T>而不是覆盖来解决它Object.Equals

4

1 回答 1

0

我现在通过让子 ViewModel 实现 IEquatable 而不是覆盖 Object.Equals 来解决它。

于 2012-11-21T12:34:49.723 回答