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

Jon*_*len 7 wpf binding

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

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

Ree*_*sey 8

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

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

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


ben*_*rce 5

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

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