我为 WPF 的 INotifyDataErrorInfo 找到的文档似乎指出,当通过 UI 设置值或调用 INotifyDataErrorInfo 的 ErrorsChanged 事件时调用 GetErrors() 方法。
但这与我在调试其 DataContext 是实现 INotifyDataErrorInfo 的视图模型的窗口时看到的不匹配(有问题的视图模型是基于 Mvvm Light 构建的)。
相反,GetErrors() 会在窗口初始化并设置其 DataContext 时调用,但之后仅在 viewmodel 代码引发 ErrorsChanged 事件时调用。在我的情况下,每当在视图模型中设置某些属性时,它都会通过我编写的代码来引发 ErrorsChanged 事件。
我问这个问题是因为我想知道是否需要处理 WPF 可能调用 GetErrors() 的情况,而我没有先调用验证代码。这可能会错误地报告不存在错误,而实际上只是这种情况,因为尚未进行验证。