Binding.ValidatesOnExceptions Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ottiene o imposta un valore che indica se includere ExceptionValidationRule.
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
Valore della proprietà
true
per includere l'oggetto ExceptionValidationRule; in caso contrario, false
.
Esempio
Negli esempi seguenti viene usato ValidatesOnExceptions per convalidare l'input dell'utente in un oggetto TextBox. Il primo esempio crea un tipo di dati che genera un'eccezione quando la Age
proprietà è impostata su una proprietà non valida.
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
Nell'esempio seguente la Age
proprietà viene associata a TextBox e viene impostata ValidatesOnExceptionstrue
su su .Binding Quando l'utente immette un valore non valido, viene visualizzato un bordo rosso in TextBox e segnala ToolTip il messaggio di errore.
<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>
Commenti
L'impostazione di questa proprietà offre un'alternativa all'uso esplicito dell'elemento ExceptionValidationRule . ExceptionValidationRule è una regola di convalida predefinita che verifica la presenza di eccezioni generate durante l'aggiornamento della proprietà di origine. Se viene generata un'eccezione, il motore di associazione crea un ValidationError oggetto con l'eccezione e lo aggiunge alla Validation.Errors raccolta dell'elemento associato. La mancanza di un errore cancella questo feedback di convalida, a meno che un'altra regola non generi un problema di convalida.
ValidatesOnExceptions è stato introdotto in .NET Framework versione 3.5. Per altre informazioni, vedere Versioni e dipendenze di .NET Framework.