Binding.ValidatesOnDataErrors Propriété
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Obtient ou définit une valeur qui indique s'il faut inclure DataErrorValidationRule.
public:
property bool ValidatesOnDataErrors { bool get(); void set(bool value); };
public bool ValidatesOnDataErrors { get; set; }
member this.ValidatesOnDataErrors : bool with get, set
Public Property ValidatesOnDataErrors As Boolean
Valeur de propriété
true
pour inclure DataErrorValidationRule ; sinon, false
.
Exemples
Les exemples suivants utilisent IDataErrorInfo et ValidatesOnDataErrors pour valider l’entrée utilisateur dans un TextBox. Le premier exemple crée un type de données qui implémente pour signaler les IDataErrorInfo erreurs de validation.
public class PersonImplementsIDataErrorInfo : IDataErrorInfo
{
private int age;
public int Age
{
get { return age; }
set { age = value; }
}
public string Error
{
get
{
return "";
}
}
public string this[string name]
{
get
{
string result = null;
if (name == "Age")
{
if (this.age < 0 || this.age > 150)
{
result = "Age must not be less than 0 or greater than 150.";
}
}
return result;
}
}
}
Public Class PersonImplementsIDataErrorInfo
Implements System.ComponentModel.IDataErrorInfo
Private m_age As Integer
Public Property Age() As Integer
Get
Return m_age
End Get
Set(ByVal value As Integer)
m_age = value
End Set
End Property
Public ReadOnly Property [Error]() As String _
Implements System.ComponentModel.IDataErrorInfo.Error
Get
Return ""
End Get
End Property
Default Public ReadOnly Property Item(ByVal name As String) As String _
Implements System.ComponentModel.IDataErrorInfo.Item
Get
Dim result As String = Nothing
If name = "Age" Then
If Me.m_age < 0 OrElse Me.m_age > 150 Then
result = "Age must not be less than 0 or greater than 150."
End If
End If
Return result
End Get
End Property
End Class
L’exemple suivant lie la Age
propriété à et TextBox définit ValidatesOnDataErrors sur true
sur .Binding Lorsque l’utilisateur entre une valeur non valide, une bordure rouge s’affiche dans et TextBox signale ToolTip le message d’erreur.
<StackPanel Margin="20">
<StackPanel.Resources>
<src:PersonImplementsIDataErrorInfo 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>
<!--ValidatesOnDataErrors to is set to True, so the Binding
checks for errors raised by the IDataErrorInfo object.
An alternative syntax is to add <DataErrorValidationRule/> within
the <Binding.ValidationRules> section.-->
<Binding Path="Age" Source="{StaticResource data}"
ValidatesOnDataErrors="True"
UpdateSourceTrigger="PropertyChanged">
</Binding>
</TextBox.Text>
</TextBox>
<TextBlock>Mouse-over to see the validation error message.</TextBlock>
</StackPanel>
Remarques
La définition de cette propriété offre une alternative à l’utilisation explicite de l’élément DataErrorValidationRule . Est DataErrorValidationRule une règle de validation intégrée qui vérifie les erreurs qui sont générées par l’implémentation IDataErrorInfo de l’objet source. Si une erreur est générée, le moteur de liaison crée un ValidationError avec l’erreur et l’ajoute à la Validation.Errors collection de l’élément lié. L’absence d’erreur efface ce commentaire de validation, sauf si une autre règle soulève un problème de validation.
ValidatesOnDataErrors est introduit dans le .NET Framework version 3.5. Pour plus d’informations, consultez Versions et dépendances du .NET Framework.