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. 當值從目標屬性傳輸到來源屬性時,資料系結引擎會先移除 ValidationError 任何可能已新增至 Validation.Errors 繫結項目目的附加屬性。 然後它會檢查是否已針對該 Binding 定義任何自訂驗證規則,在此情況下,它會在每個 方法上 ValidationRule 呼叫 Validate 方法,直到其中一個失敗,或直到所有規則都通過為止。

  2. 一旦有未傳遞的自訂規則,系結引擎就會 ValidationError 建立 物件,並將它新增至 Validation.Errors 繫結項目目的集合。 當 Validation.Errors 不是空白時, Validation.HasError 元素的附加屬性會設定為 true 。 此外,如果 BindingNotifyOnValidationError 屬性設定為 true,則繫結引擎會針對元素引發 Validation.Error 附加事件。

  3. 如果所有規則都通過,則系結引擎會呼叫轉換器,如果有的話。

  4. 如果轉換子通過,系結引擎會呼叫來源屬性的 setter。

  5. 如果系結有 ExceptionValidationRule 相關聯的 ,而且在步驟 3 或 4 期間擲回例外狀況,系結引擎會檢查是否有 UpdateSourceExceptionFilter 。 您可以使用 UpdateSourceExceptionFilter 回呼來提供處理例外狀況的自訂處理常式。 UpdateSourceExceptionFilter如果未在 上 Binding 指定 ,則系結引擎會 ValidationError 建立 ,但例外狀況為 ,並將它新增至 Validation.Errors 繫結項目目的集合。

有效的值傳輸方向 (目標為來源或目標來源,) 將會清除 Validation.Errors 附加屬性。

建構函式

ValidationError(ValidationRule, Object)

使用指定的參數,初始化 ValidationError 類別的新執行個體。

ValidationError(ValidationRule, Object, Object, Exception)

使用指定的參數,初始化 ValidationError 類別的新執行個體。

屬性

BindingInError

取得這個 BindingExpressionMultiBindingExpressionValidationError 物件。 此物件可能明確標記為無效,或有失敗的驗證規則。

ErrorContent

取得或設定物件,這個物件提供這個 ValidationError 的其他內容 (例如,描述錯誤的字串)。

Exception

取得或設定 Exception 物件,該物件是這個 ValidationError 的原因,如果錯誤是因為例外狀況所造成。

RuleInError

取得或設定 ValidationRule 物件,該物件是這個 ValidationError 的原因,如果錯誤是因為驗證規則失敗所造成。

方法

Equals(Object)

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

(繼承來源 Object)
GetHashCode()

做為預設雜湊函式。

(繼承來源 Object)
GetType()

取得目前執行個體的 Type

(繼承來源 Object)
MemberwiseClone()

建立目前 Object 的淺層複製。

(繼承來源 Object)
ToString()

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

(繼承來源 Object)

適用於

另請參閱