0

我有一个实现INotifyDataErrorInfo接口的视图模型。

当更新属性并发生验证错误时,我调用ErrorsChanged事件,然后绑定引擎知道它必须调用GetErrors(string propertyName)我的视图模型上的方法,并从那里返回相应IEnumerable的错误propertyName。没什么特别的。

但是当我调试时,似乎GetErrors()是在视图模型属性更改时调用该方法(当然是在调用 INotifyPropertyChanged.PropertyChanged 时)。即使我的视图模型没有调用ErrorsChanged.

当通知属性更改时,绑定引擎是否会GetErrors()自行调用?(因此不仅当我的视图模型显式调用时ErrorsChanged?)

我在文档中找不到它。

4

1 回答 1

1

当通知属性更改时,绑定引擎是否会自行调用 GetErrors()?(因此不仅当我的视图模型显式调用 ErrorsChanged 时?)

是的。该TransferValue方法最终在您PropertyChanged为 UI 绑定源属性引发事件时被调用,在BindingExpression类调用UpdateNotifyDataErrors中,您可以在源代码中看到。

于 2022-01-03T16:48:15.363 回答