Binding.ValidatesOnDataErrors Eigenschap
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee wordt een waarde opgehaald of ingesteld die aangeeft of de DataErrorValidationRulewaarde moet worden opgenomen.
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
Waarde van eigenschap
true om de DataErrorValidationRule; anders toe te voegen, false.
Voorbeelden
In de volgende voorbeelden wordt gebruikgemaakt IDataErrorInfo van en ValidatesOnDataErrors om gebruikersinvoer in een TextBoxte valideren. In het eerste voorbeeld wordt een gegevenstype gemaakt dat wordt geïmplementeerd IDataErrorInfo om validatiefouten te rapporteren.
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
In het volgende voorbeeld wordt de Age eigenschap aan de TextBox eigenschap gekoppeld en ingesteld ValidatesOnDataErrorstrue op de Binding. Wanneer de gebruiker een ongeldige waarde invoert, wordt er een rode rand weergegeven in de TextBox en wordt het ToolTip foutbericht gerapporteerd.
<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>
Opmerkingen
Het instellen van deze eigenschap biedt een alternatief voor het expliciet gebruik van het DataErrorValidationRule element. Dit DataErrorValidationRule is een ingebouwde validatieregel waarmee wordt gecontroleerd op fouten die worden gegenereerd door de IDataErrorInfo implementatie van het bronobject. Als er een fout optreedt, maakt de bindingsengine een ValidationError met de fout en voegt deze toe aan de Validation.Errors verzameling van het afhankelijke element. Het ontbreken van een fout wist deze validatiefeedback, tenzij een andere regel een validatieprobleem veroorzaakt.
ValidatesOnDataErrors wordt geïntroduceerd in de .NET Framework versie 3.5. Zie .NET Framework-versies en -afhankelijkhedenvoor meer informatie.