Binding.ValidatesOnDataErrors 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 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
Valore della proprietà
true
per includere l'oggetto DataErrorValidationRule; in caso contrario, false
.
Esempio
Negli esempi seguenti vengono IDataErrorInfo usati e ValidatesOnDataErrors per convalidare l'input dell'utente in un oggetto TextBox. Il primo esempio crea un tipo di dati che implementa per segnalare IDataErrorInfo gli errori di convalida.
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
Nell'esempio seguente la Age
proprietà viene associata a TextBox e viene impostata ValidatesOnDataErrorstrue
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: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>
Commenti
L'impostazione di questa proprietà offre un'alternativa all'uso esplicito dell'elemento DataErrorValidationRule . DataErrorValidationRule è una regola di convalida predefinita che verifica la presenza di errori generati dall'implementazione dell'oggetto IDataErrorInfo di origine. Se viene generato un errore, il motore di associazione crea un ValidationError oggetto con l'errore 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.
ValidatesOnDataErrors è stato introdotto in .NET Framework versione 3.5. Per altre informazioni, vedere Versioni e dipendenze di .NET Framework.