Validation.Error 附加事件
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
當綁定元素遇到驗證錯誤時,僅發生於將 NotifyOnValidationError 值設為 true的綁定時。
see AddErrorHandler, and RemoveErrorHandler
see AddErrorHandler, and RemoveErrorHandler
see AddErrorHandler, and RemoveErrorHandler
備註
WPF 資料綁定模型讓你能與你的Binding物件產生關聯ValidationRules。 驗證發生在綁定目標到綁定來源值傳輸過程中,然後才呼叫轉換器。 以下描述驗證過程:
當值從目標屬性轉移到來源屬性時,資料綁定引擎會先移除 ValidationError 可能已加入 Validation.Errors 綁定元素附加屬性的任何值。 接著檢查是否有自訂 ValidationRule的 s, Binding這時它會呼叫 Validate 每個 ValidationRules 的方法,直到其中一個出錯,或全部通過為止。
一旦有自訂規則未通過,綁定引擎會建立一個 ValidationError 物件並將其加入 Validation.Errors 綁定元素的集合中。 當 Validation.Errors 不空時, Validation.HasError 元素的附加性質被設定為
true。 此外,若 NotifyOnValidationError 的屬性 Binding 設為true,綁定引擎會將 Validation.Error 該元素上的附加事件提升。若所有規則通過,綁定引擎接著呼叫轉換器(若有轉換器)。
如果轉換器通過,綁定引擎會呼叫來源屬性的設定器。
如果綁定有 ExceptionValidationRule 關聯,且在第 4 步拋出例外,綁定引擎會檢查是否有 UpdateSourceExceptionFilter。 你可以選擇使用 UpdateSourceExceptionFilter 回調來提供自訂的處理程序來處理例外。 若 未指定 BindingaUpdateSourceExceptionFilter,綁定引擎會建立帶有例外的 aValidationError,並將其加入Validation.Errors綁定元素的集合中。
另外請注意,有效的值轉移(目標到來源或來源到目標)會清除 Validation.Errors attached 屬性。
欲了解更多資訊,請參閱 資料綁定概覽中的「資料驗證」。
路由事件資訊
| 項目 | 價值 |
|---|---|
| 識別碼欄位 | ErrorEvent |
| 路由策略 | 氣泡 |
| 代理人 | EventHandler<TEventArgs>,受限於 ValidationErrorEventArgs |