我可以强制窗口重新评估其所有绑定和验证吗?
出于某种原因,似乎在一个奇怪的情况下忽略了INotifyPropertyChanged.PropertyChanged,我正在寻找一种解决方法,直到找到真正的原因。
答案 0 :(得分:8)
不幸的是,我知道无法强制窗口中的每个绑定重新评估。部分问题是大多数绑定都没有在Window上声明,而是在Window的特定DependencyObject子节点上声明。
您可以使用DependencyObject.InvalidateProperty使单个绑定无效,但必须在逐个属性的基础上完成此操作。如果只有少数对象被绑定,您应该能够使用它来强制重新查询它们的值。
话虽如此,我建议找出根本原因 - 从长远来看,这可能是一个更好的解决方案。
答案 1 :(得分:5)
使用PropertyChanged
作为属性名称提升String.Empty
。这将导致对象中的所有绑定重新读取其所有绑定。
如果您遇到绑定问题,请不要忘记检查输出窗口是否存在绑定错误