Binding.ValidatesOnDataErrors 속성
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
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
속성 값
DataErrorValidationRule을 포함하면 true
이고, 그렇지 않으면 false
입니다.
예제
다음 예제에서는 .에서 TextBox사용자 입력을 사용하고 IDataErrorInfo ValidatesOnDataErrors 유효성을 검사합니다. 첫 번째 예제에서는 유효성 검사 오류를 보고하기 위해 구현하는 IDataErrorInfo 데이터 형식을 만듭니다.
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
다음 예제에서는 속성을 바인딩하고 에 설정합니다 ValidatesOnDataErrors true
Binding.TextBox Age
사용자가 잘못된 값을 입력하면 빨간색 테두리가 TextBox 표시되고 ToolTip 오류 메시지가 보고됩니다.
<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>
설명
이 속성을 설정하면 요소를 명시적으로 사용하는 대신 사용할 DataErrorValidationRule 수 있습니다. 원본 DataErrorValidationRule 개체의 구현에 의해 IDataErrorInfo 발생한 오류를 확인하는 기본 제공 유효성 검사 규칙입니다. 오류가 발생하면 바인딩 엔진은 오류를 사용하여 ValidationError 만들고 바인딩된 요소의 컬렉션에 Validation.Errors 추가합니다. 오류가 없으므로 다른 규칙이 유효성 검사 문제를 제기하지 않는 한 이 유효성 검사 피드백이 지워지게 됩니다.
ValidatesOnDataErrors .NET Framework 버전 3.5에서에서 도입 되었습니다. 자세한 내용은 .NET Framework 버전 및 종속성을 참조하십시오.