ValidationError Classe

Definição

Representa um erro de validação que é criado quer pelo motor de ligação quando um ValidationRule reporta um erro de validação, quer explicitamente através do MarkInvalid(BindingExpressionBase, ValidationError) método.

public ref class ValidationError
public class ValidationError
type ValidationError = class
Public Class ValidationError
Herança
ValidationError

Exemplos

O exemplo seguinte mostra um disparador de estilo que cria uma ToolTip e que reporta uma mensagem de erro de validação. A Validation.Errors propriedade anexada devolve uma coleção de ValidationError objetos no elemento ligado.

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

Observações

O modelo de ligação de dados WPF permite-lhe associar regras de validação ao seu objeto Binding. A validação ocorre durante a transferência de valor alvo para fonte antes de o conversor ser chamado. O que se segue descreve o processo de validação.

  1. Quando um valor está a ser transferido da propriedade de destino para a propriedade de origem, o motor de ligação de dados remove primeiro qualquer valor ValidationError que possa ter sido adicionado à Validation.Errors propriedade associada do elemento ligado. Depois verifica se existem regras de validação personalizadas definidas para esse Binding, caso em que chama o Validate método em cada ValidationRule um até que um deles falhe ou até que todos sejam aprovados.

  2. Quando existe uma regra personalizada que não passa, o motor de ligação cria um ValidationError objeto e adiciona-o à Validation.Errors coleção do elemento atribuído. Quando Validation.Errors não é vazio, a Validation.HasError propriedade associada ao elemento é definida como true. Além disso, se a propriedade NotifyOnValidationError do Binding estiver definida como true, o mecanismo de vinculação acionará o evento Validation.Error anexado no elemento.

  3. Se todas as regras passarem, o motor de ligação chama então o conversor, se existir.

  4. Se o conversor passar, o motor de ligação chama o setter da propriedade da fonte.

  5. Se o binding tiver um ExceptionValidationRule associado e uma exceção for lançada durante o passo 3 ou 4, o motor de binding verifica se existe um UpdateSourceExceptionFilter. Você pode usar o callback UpdateSourceExceptionFilter para fornecer um manipulador personalizado para lidar com as exceções. Se an UpdateSourceExceptionFilter não for especificado em , Bindingo motor de ligação cria a ValidationError com exceção e adiciona-o à Validation.Errors coleção do elemento ligado.

Uma transferência de valor válida em qualquer direção (alvo para fonte ou fonte para alvo) irá limpar a Validation.Errors propriedade anexada.

Construtores

Name Description
ValidationError(ValidationRule, Object, Object, Exception)

Inicializa uma nova instância da ValidationError classe com os parâmetros especificados.

ValidationError(ValidationRule, Object)

Inicializa uma nova instância da ValidationError classe com os parâmetros especificados.

Propriedades

Name Description
BindingInError

Obtém o BindingExpression ou MultiBindingExpression objeto deste ValidationError. O objeto está marcado explicitamente como inválido ou tem uma regra de validação falhada.

ErrorContent

Obtém ou define um objeto que fornece contexto adicional para este ValidationError, como uma cadeia que descreve o erro.

Exception

Obtém ou define o Exception objeto que foi a causa desta ValidationError, se o erro for resultado de uma exceção.

RuleInError

Obtém ou define o ValidationRule objeto que foi a causa disto ValidationError, se o erro for resultado de uma regra de validação.

Métodos

Name Description
Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como função de hash predefinida.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
ToString()

Devolve uma cadeia que representa o objeto atual.

(Herdado de Object)

Aplica-se a

Ver também