Binding.ValidatesOnExceptions Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Obtém ou define um valor que indica se a ExceptionValidationRule deve ser incluída.
public:
property bool ValidatesOnExceptions { bool get(); void set(bool value); };
public bool ValidatesOnExceptions { get; set; }
member this.ValidatesOnExceptions : bool with get, set
Public Property ValidatesOnExceptions As Boolean
Valor da propriedade
true
para incluir o ExceptionValidationRule; caso contrário, false
.
Exemplos
Os exemplos a seguir usam ValidatesOnExceptions para validar a entrada do usuário em um TextBox. O primeiro exemplo cria um tipo de dados que gera uma exceção quando a Age
propriedade é definida como uma propriedade inválida.
public class PersonThrowException
{
private int age;
public int Age
{
get { return age; }
set
{
if (value < 0 || value > 150)
{
throw new ArgumentException("Age must not be less than 0 or greater than 150.");
}
age = value;
}
}
}
Public Class PersonThrowException
Private m_age As Integer
Public Property Age() As Integer
Get
Return m_age
End Get
Set(ByVal value As Integer)
If value < 0 OrElse value > 150 Then
Throw New ArgumentException("Age must not be less than 0 or greater than 150.")
End If
m_age = value
End Set
End Property
End Class
O exemplo a seguir associa a Age
propriedade ao TextBox e define ValidatesOnExceptions true
como no Binding. Quando o usuário insere um valor inválido, uma borda vermelha aparece no TextBox e relata ToolTip a mensagem de erro.
<StackPanel Margin="20">
<StackPanel.Resources>
<src:PersonThrowException x:Key="data"/>
<!--The tool tip for the TextBox to display the validation error message.-->
<Style x:Key="textBoxInError" TargetType="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>
</StackPanel.Resources>
<TextBlock>Enter your age:</TextBlock>
<TextBox Style="{StaticResource textBoxInError}">
<TextBox.Text>
<!--By setting ValidatesOnExceptions to True, it checks for exceptions
that are thrown during the update of the source property.
An alternative syntax is to add <ExceptionValidationRule/> within
the <Binding.ValidationRules> section.-->
<Binding Path="Age" Source="{StaticResource data}"
ValidatesOnExceptions="True"
UpdateSourceTrigger="PropertyChanged">
</Binding>
</TextBox.Text>
</TextBox>
<TextBlock>Mouse-over to see the validation error message.</TextBlock>
</StackPanel>
Comentários
Definir essa propriedade fornece uma alternativa para usar o ExceptionValidationRule elemento explicitamente. É ExceptionValidationRule uma regra de validação interna que verifica se há exceções geradas durante a atualização da propriedade de origem. Se uma exceção for lançada, o mecanismo de associação criará uma ValidationError com exceção e a Validation.Errors adicionará à coleção do elemento associado. A falta de um erro limpa esse feedback de validação, a menos que outra regra gere um problema de validação.
ValidatesOnExceptionsé introduzido no .NET Framework versão 3.5. Para obter mais informações, confira Versões e dependências do .NET Framework.