WPF:我可以强制窗口重新评估其所有绑定和验证吗?

时间:2010-10-09 01:29:43

标签: wpf binding

我可以强制窗口重新评估其所有绑定和验证吗?

出于某种原因,似乎在一个奇怪的情况下忽略了INotifyPropertyChanged.PropertyChanged,我正在寻找一种解决方法,直到找到真正的原因。

2 个答案:

答案 0 :(得分:8)

不幸的是,我知道无法强制窗口中的每个绑定重新评估。部分问题是大多数绑定都没有在Window上声明,而是在Window的特定DependencyObject子节点上声明。

您可以使用DependencyObject.InvalidateProperty使单个绑定无效,但必须在逐个属性的基础上完成此操作。如果只有少数对象被绑定,您应该能够使用它来强制重新查询它们的值。

话虽如此,我建议找出根本原因 - 从长远来看,这可能是一个更好的解决方案。

答案 1 :(得分:5)

使用PropertyChanged作为属性名称提升String.Empty。这将导致对象中的所有绑定重新读取其所有绑定。

如果您遇到绑定问题,请不要忘记检查输出窗口是否存在绑定错误