我有一個實作INotifyDataErrorInfo介面的視圖模型。
當更新屬性并發生驗證錯誤時,我呼叫ErrorsChanged事件,然后系結引擎知道它必須呼叫GetErrors(string propertyName)我的視圖模型上的方法,并從那里回傳相應IEnumerable的錯誤propertyName。沒什么特別的。
但是當我除錯時,似乎GetErrors()是在視圖模型屬性更改時呼叫該方法(當然是在呼叫 INotifyPropertyChanged.PropertyChanged 時)。即使我的視圖模型沒有呼叫ErrorsChanged.
GetErrors()當通知屬性更改時,系結引擎是否會自行呼叫?(因此不僅當我的視圖模型顯式呼叫時ErrorsChanged?)
我在檔案中找不到它。
uj5u.com熱心網友回復:
當通知屬性更改時,系結引擎是否會自行呼叫 GetErrors()?(因此不僅當我的視圖模型顯式呼叫 ErrorsChanged 時?)
是的。該TransferValue方法最終在您PropertyChanged為 UI 系結源屬性引發事件時被呼叫,在BindingExpression類呼叫中UpdateNotifyDataErrors,您可以在源代碼中看到。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/408100.html
標籤:
上一篇:自動大小更改后重新定位視窗
下一篇:使用Aforge捕獲桌面
