共用方式為


ValidationError 類別

定義

代表一種驗證錯誤,該錯誤由綁定引擎在回報驗證錯誤時 ValidationRule 產生,或透過 MarkInvalid(BindingExpressionBase, ValidationError) 方法明確產生。

public ref class ValidationError
public class ValidationError
type ValidationError = class
Public Class ValidationError
繼承
ValidationError

範例

以下範例展示了一個樣式觸發器,該觸發器會產生 ToolTip 一個並報告驗證錯誤訊息。 附加屬性 Validation.Errors 會回傳綁定元素上的一組 ValidationError 物件。

<Style x:Key="textStyleTextBox" TargetType="TextBox">
  <Setter Property="Foreground" Value="#333333" />
  <Setter Property="MaxLength" Value="40" />
  <Setter Property="Width" Value="392" />
  <Style.Triggers>
    <Trigger Property="Validation.HasError" Value="true">
      <Setter Property="ToolTip"
        Value="{Binding RelativeSource={RelativeSource Self},
                        Path=(Validation.Errors)[0].ErrorContent}"/>
    </Trigger>
  </Style.Triggers>
</Style>

備註

WPF 資料綁定模型允許您將驗證規則與物件 Binding 關聯。 驗證會在目標到來源值傳輸過程中進行,然後才呼叫轉換器。 以下說明驗證過程。

  1. 當值從目標屬性轉移到來源屬性時,資料綁定引擎會先移除可能被附加Validation.Errors於綁定元素附加屬性中的值ValidationError。 接著檢查是否有針對該 Binding的自訂驗證規則,若是,則會呼叫 ValidateValidationRule 方法,直到其中一項失敗或全部通過為止。

  2. 一旦有自訂規則未通過,綁定引擎會建立一個 ValidationError 物件並將其加入 Validation.Errors 綁定元素的集合中。 當 Validation.Errors 不空時, Validation.HasError 元素的附加性質被設定為 true。 此外,若 NotifyOnValidationError 的屬性 Binding 設為 true,綁定引擎會將 Validation.Error 該元素上的附加事件提升。

  3. 如果所有規則都通過,綁定引擎就會呼叫轉換器(如果有的話)。

  4. 如果轉換器通過,綁定引擎會呼叫來源屬性的設定器。

  5. 如果綁定有ExceptionValidationRule關聯,且在第 3 或第 4 步拋出例外,綁定引擎會檢查是否有例外。UpdateSourceExceptionFilter 你可以利用回 UpdateSourceExceptionFilter 調來提供一個自訂的處理程序來處理例外。 若 未指定 BindingaUpdateSourceExceptionFilter,綁定引擎會建立帶有例外的 aValidationError,並將其加入Validation.Errors綁定元素的集合中。

有效的值轉移(目標到來源或來源到目標)都能清除 Validation.Errors 附加屬性。

建構函式

名稱 Description
ValidationError(ValidationRule, Object, Object, Exception)

初始化一個新的類別實例 ValidationError ,並以指定參數進行。

ValidationError(ValidationRule, Object)

初始化一個新的類別實例 ValidationError ,並以指定參數進行。

屬性

名稱 Description
BindingInError

得到BindingExpression這個ValidationErrorMultiBindingExpression的客體。 該物件要麼被明確標記為無效,要麼有驗證失敗的規則。

ErrorContent

取得或設定一個物件,提供額外的上下文, ValidationError例如描述錯誤的字串。

Exception

如果錯誤是例外造成的,則會取得或設定 Exception 造成此問題 ValidationError的物件。

RuleInError

若錯誤是驗證規則所導致,則取得或設定 ValidationRule 造成此問題 ValidationError的物件。

方法

名稱 Description
Equals(Object)

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
GetHashCode()

做為預設哈希函式。

(繼承來源 Object)
GetType()

取得目前實例的 Type

(繼承來源 Object)
MemberwiseClone()

建立目前 Object的淺層複本。

(繼承來源 Object)
ToString()

傳回表示目前 物件的字串。

(繼承來源 Object)

適用於

另請參閱