ValidationError Clase

Definición

Representa un error de validación que se crea mediante el motor de enlace cuando un elemento ValidationRule notifica un error de validación o a través del método MarkInvalid(BindingExpressionBase, ValidationError) explícitamente.Represents a validation error that is created either by the binding engine when a ValidationRule reports a validation error, or through the MarkInvalid(BindingExpressionBase, ValidationError) method explicitly.

public ref class ValidationError
public class ValidationError
type ValidationError = class
Public Class ValidationError
Herencia
ValidationError

Ejemplos

En el ejemplo siguiente se muestra un desencadenador de estilo que crea un ToolTip que notifica un mensaje de error de validación.The following example shows a style trigger that creates a ToolTip that reports a validation error message. La propiedad adjunta Validation.Errors devuelve una colección de objetos ValidationError en el elemento enlazado.The Validation.Errors attached property returns a collection of ValidationError objects on the bound element.

<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>

Comentarios

El modelo de enlace de datos de WPFWPF permite asociar reglas de validación con el objeto Binding.The WPFWPF data binding model enables you to associate validation rules with your Binding object. La validación se produce durante la transferencia del valor de destino a origen antes de que se llame al convertidor.Validation occurs during target-to-source value transfer before the converter is called. A continuación se describe el proceso de validación.The following describes the validation process.

  1. Cuando se transfiere un valor desde la propiedad de destino a la propiedad de origen, el motor de enlace de datos quita primero cualquier ValidationError que se pueda haber agregado a la Validation.Errors propiedad adjunta del elemento enlazado.When a value is being transferred from the target property to the source property, the data binding engine first removes any ValidationError that might have been added to the Validation.Errors attached property of the bound element. A continuación, comprueba si se han definido reglas de validación personalizadas para ese Binding, en cuyo caso llama al método Validate en cada ValidationRule hasta que se produce un error en uno de ellos o hasta que todos ellos pasan.It then checks whether any custom validation rules are defined for that Binding, in which case it calls the Validate method on each ValidationRule until one of them fails or until all of them pass.

  2. Una vez que hay una regla personalizada que no se pasa, el motor de enlace crea un objeto ValidationError y lo agrega a la colección Validation.Errors del elemento enlazado.Once there is a custom rule that does not pass, the binding engine creates a ValidationError object and adds it to the Validation.Errors collection of the bound element. Cuando Validation.Errors no está vacío, el Validation.HasError propiedad adjunta del elemento se establece en true.When Validation.Errors is not empty, the Validation.HasError attached property of the element is set to true. Además, si la propiedad NotifyOnValidationError del Binding está establecida en true, el motor de enlace genera el evento adjunto Validation.Error en el elemento.Also, if the NotifyOnValidationError property of the Binding is set to true, then the binding engine raises the Validation.Error attached event on the element.

  3. Si todas las reglas pasan, el motor de enlace llama entonces al convertidor, si existe uno.If all the rules pass, the binding engine then calls the converter, if one exists.

  4. Si se pasa el convertidor, el motor de enlace llama al establecedor de la propiedad de origen.If the converter passes, the binding engine calls the setter of the source property.

  5. Si el enlace tiene una ExceptionValidationRule asociada y se produce una excepción durante el paso 3 o 4, el motor de enlace comprueba si hay un UpdateSourceExceptionFilter.If the binding has an ExceptionValidationRule associated with it and an exception is thrown during step 3 or 4, the binding engine checks to see if there is an UpdateSourceExceptionFilter. Puede usar la devolución de llamada de UpdateSourceExceptionFilter para proporcionar un controlador personalizado para controlar excepciones.You can use the UpdateSourceExceptionFilter callback to provide a custom handler for handling exceptions. Si no se especifica un UpdateSourceExceptionFilter en el Binding, el motor de enlace crea un ValidationError con la excepción y lo agrega a la colección Validation.Errors del elemento enlazado.If an UpdateSourceExceptionFilter is not specified on the Binding, the binding engine creates a ValidationError with the exception and adds it to the Validation.Errors collection of the bound element.

Una transferencia de valor válida en cualquier dirección (destino a origen o origen a destino) borrará la Validation.Errors propiedad adjunta.A valid value transfer in either direction (target to source or source to target) will clear the Validation.Errors attached property.

Constructores

ValidationError(ValidationRule, Object)

Inicializa una nueva instancia de la clase ValidationError con los parámetros especificados.Initializes a new instance of the ValidationError class with the specified parameters.

ValidationError(ValidationRule, Object, Object, Exception)

Inicializa una nueva instancia de la clase ValidationError con los parámetros especificados.Initializes a new instance of the ValidationError class with the specified parameters.

Propiedades

BindingInError

Obtiene el objeto BindingExpression o MultiBindingExpression de este objeto ValidationError.Gets the BindingExpression or MultiBindingExpression object of this ValidationError. El objeto se marca explícitamente como no válido o tiene una regla de validación que ha generado un error.The object is either marked invalid explicitly or has a failed validation rule.

ErrorContent

Obtiene o establece un objeto que proporciona contexto adicional para esta clase ValidationError, como una cadena que describe el error.Gets or sets an object that provides additional context for this ValidationError, such as a string describing the error.

Exception

Obtiene o establece el objeto Exception que fue la causa de este objeto ValidationError si el error es el resultado de una excepción.Gets or sets the Exception object that was the cause of this ValidationError, if the error is the result of an exception.

RuleInError

Obtiene o establece el objeto ValidationRule que fue la causa de este objeto ValidationError si el error es el resultado de una regla de validación.Gets or sets the ValidationRule object that was the cause of this ValidationError, if the error is the result of a validation rule.

Métodos

Equals(Object)

Determina si el objeto especificado es igual al objeto actual.Determines whether the specified object is equal to the current object.

(Heredado de Object)
GetHashCode()

Sirve como la función hash predeterminada.Serves as the default hash function.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.Gets the Type of the current instance.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Object actual.Creates a shallow copy of the current Object.

(Heredado de Object)
ToString()

Devuelve una cadena que representa el objeto actual.Returns a string that represents the current object.

(Heredado de Object)

Se aplica a

Consulte también: