Este artigo foi traduzido por máquina. Coloque o ponteiro do mouse sobre as frases do artigo para ver o texto original. Mais informações.
Tradução
Original
Este tópico ainda não foi avaliado como - Avalie este tópico

Classe Validation

Fornece métodos e anexado propriedades que ofereçam suporte a validação de dados.

System.Object
  System.Windows.Controls.Validation

Namespace:  System.Windows.Controls
Assembly:  PresentationFramework (em PresentationFramework.dll)
public static class Validation

O tipo Validation expõe os membros a seguir.

  NomeDescrição
Propriedade anexada públicaErrorsObtém a coleção de todos os ativos ValidationError objetos no elemento acoplado.
Propriedade anexada públicaErrorTemplateObtém ou define o ControlTemplate usado para gerar comentários de erro de validação da camada de adorno.
Propriedade anexada públicaHasErrorObtém um valor que indica se alguma ligada a destino de vinculação elemento tem um ValidationError.
Propriedade anexada públicaValidationAdornerSiteObtém ou define o elemento que é exibida para indicar que ocorreu um erro de validação no elemento acoplado onde essa propriedade é definida.
Propriedade anexada públicaValidationAdornerSiteForObtém ou define o elemento para o qual este elemento aparece indicar que ocorreu um erro.
Superior
  NomeDescrição
Método públicoMembro estáticoAddErrorHandlerAdiciona um manipulador de eventos para o Erroranexado evento para o objeto especificado. 
Método públicoMembro estáticoClearInvalidRemove todas as ValidationError objetos URL BindingExpressionBase objeto.
Método públicoMembro estáticoGetErrorsObtém o valor da Errorsanexado a propriedade do elemento especificado. 
Método públicoMembro estáticoGetErrorTemplateObtém o valor da ErrorTemplateanexado a propriedade do elemento especificado. 
Método públicoMembro estáticoGetHasErrorObtém o valor da HasErroranexado a propriedade do elemento especificado. 
Método públicoMembro estáticoGetValidationAdornerSiteObtém o valor da ValidationAdornerSite anexado propriedade do elemento especificado.
Método públicoMembro estáticoGetValidationAdornerSiteForObtém o valor da ValidationAdornerSiteFor anexado propriedade do elemento especificado.
Método públicoMembro estáticoMarkInvalidMarca especificada BindingExpression como inválido com a versão especificada do objeto ValidationError objeto.
Método públicoMembro estáticoRemoveErrorHandlerAdiciona um manipulador de eventos para o Erroranexado evento do objeto especificado. 
Método públicoMembro estáticoSetErrorTemplateDefine o valor da ErrorTemplateanexado a propriedade ao elemento especificado. 
Método públicoMembro estáticoSetValidationAdornerSiteConjuntos de ValidationAdornerSite anexado propriedade para o valor especificado no elemento especificado.
Método públicoMembro estáticoSetValidationAdornerSiteForConjuntos de ValidationAdornerSiteFor anexado propriedade para o valor especificado no elemento especificado.
Superior
  NomeDescrição
Evento anexado públicoErrorOcorre quando o elemento acoplado é executado em um erro de validação, mas apenas para ligações com o NotifyOnValidationError valor definido como true.
Superior
  NomeDescrição
Campo públicoMembro estáticoErrorEventIdentifica o Erroranexado evento. 
Campo públicoMembro estáticoErrorsPropertyIdentifica o Errorsanexado a propriedade. 
Campo públicoMembro estáticoErrorTemplatePropertyIdentifica o ErrorTemplateanexado a propriedade. 
Campo públicoMembro estáticoHasErrorPropertyIdentifica o HasErroranexado a propriedade. 
Campo públicoMembro estáticoValidationAdornerSiteForPropertyIdentifica o ValidationAdornerSiteForanexado a propriedade. 
Campo públicoMembro estáticoValidationAdornerSitePropertyIdentifica o ValidationAdornerSiteanexado a propriedade. 
Superior

Para obter uma discussão detalhada sobre o processo de validação, consulte "Validação de dados" em Visão geral de vinculação de dados.

This example shows how to use an ErrorTemplate and a style trigger to provide visual feedback to inform the user when an invalid value is entered, based on a custom validation rule.

The text content of the TextBox in the following example is bound to the Age property (of type int) of a binding source object named ods. The binding is set up to use a validation rule named AgeRangeRule so that if the user enters non-numeric characters or a value that is smaller than 21 or greater than 130, a red exclamation mark appears next to the text box and a tool tip with the error message appears when the user moves the mouse over the text box.


<TextBox Name="textBox1" Width="50" FontSize="15"
         Validation.ErrorTemplate="{StaticResource validationTemplate}"
         Style="{StaticResource textBoxInError}"
         Grid.Row="1" Grid.Column="1" Margin="2">
  <TextBox.Text>
    <Binding Path="Age" Source="{StaticResource ods}"
             UpdateSourceTrigger="PropertyChanged" >
      <Binding.ValidationRules>
        <c:AgeRangeRule Min="21" Max="130"/>
      </Binding.ValidationRules>
    </Binding>
  </TextBox.Text>
</TextBox>


The following example shows the implementation of AgeRangeRule, which inherits from ValidationRule and overrides the Validate method. The Int32.Parse() method is called on the value to make sure that it does not contain any invalid characters. The Validate method returns a ValidationResult that indicates if the value is valid based on whether an exception is caught during the parsing and whether the age value is outside of the lower and upper bounds.


public class AgeRangeRule : ValidationRule
{
    private int _min;
    private int _max;

    public AgeRangeRule()
    {
    }

    public int Min
    {
        get { return _min; }
        set { _min = value; }
    }

    public int Max
    {
        get { return _max; }
        set { _max = value; }
    }

    public override ValidationResult Validate(object value, CultureInfo cultureInfo)
    {
        int age = 0;

        try
        {
            if (((string)value).Length > 0)
                age = Int32.Parse((String)value);
        }
        catch (Exception e)
        {
            return new ValidationResult(false, "Illegal characters or " + e.Message);
        }

        if ((age < Min) || (age > Max))
        {
            return new ValidationResult(false,
              "Please enter an age in the range: " + Min + " - " + Max + ".");
        }
        else
        {
            return new ValidationResult(true, null);
        }
    }
}


The following example shows the custom ControlTemplate validationTemplate that creates a red exclamation mark to notify the user of a validation error. Control templates are used to redefine the appearance of a control.


<ControlTemplate x:Key="validationTemplate">
  <DockPanel>
    <TextBlock Foreground="Red" FontSize="20">!</TextBlock>
    <AdornedElementPlaceholder/>
  </DockPanel>
</ControlTemplate>


As shown in the following example, the ToolTip that shows the error message is created using the style named textBoxInError. If the value of HasError is true, the trigger sets the tool tip of the current TextBox to its first validation error. The RelativeSource is set to Self, referring to the current element.


<Style x:Key="textBoxInError" TargetType="{x:Type TextBox}">
  <Style.Triggers>
    <Trigger Property="Validation.HasError" Value="true">
      <Setter Property="ToolTip"
        Value="{Binding RelativeSource={x:Static RelativeSource.Self},
                        Path=(Validation.Errors)[0].ErrorContent}"/>
    </Trigger>
  </Style.Triggers>
</Style>


Para o exemplo completo, consulte Exemplo de validação de ligação.

Note that if you do not provide a custom ErrorTemplate the default error template appears to provide visual feedback to the user when there is a validation error. See "Data Validation" in Visão geral de vinculação de dados for more information. Also, WPF provides a built-in validation rule that catches exceptions that are thrown during the update of the binding source property. Para obter mais informações, consulte ExceptionValidationRule.

.NET Framework

Com suporte em: 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Com suporte em: 4, 3.5 SP1

Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Função Server Core sem suporte), Windows Server 2008 R2 (Função Server Core com suporte com o SP1 ou posterior, Itanium sem suporte)

O .NET Framework não oferece suporte a todas as versões de cada plataforma. Para obter uma lista das versões com suporte, consulte .Requisitos de sistema do NET Framework.
Quaisquer membros estático (Shared no Visual Basic) públicos deste tipo são thread-safe. Não há garantia de que qualquer membro de instância seja thread-safe.
Isso foi útil para você?
(1500 caracteres restantes)

Contribuições da comunidade

ADICIONAR
© 2013 Microsoft. Todos os direitos reservados.