Binding.ValidatesOnDataErrors 속성

정의

DataErrorValidationRule을 포함할지 여부를 나타내는 값을 가져오거나 설정합니다.Gets or sets a value that indicates whether to include the 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

속성 값

Boolean

DataErrorValidationRule을 포함하면 true이고, 그렇지 않으면 false입니다.true to include the DataErrorValidationRule; otherwise, false.

예제

다음 예에서는 및를 사용 하 여 IDataErrorInfo ValidatesOnDataErrors 에서 사용자 입력의 유효성을 검사 TextBox 합니다.The following examples uses IDataErrorInfo and ValidatesOnDataErrors to validate user input in a TextBox. 첫 번째 예에서는 IDataErrorInfo 유효성 검사 오류를 보고 하기 위해를 구현 하는 데이터 형식을 만듭니다.The first example creates a data type that implements IDataErrorInfo to report validation errors.

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

다음 예제에서는 속성을에 바인딩하고에서 Age TextBox ValidatesOnDataErrors 을로 설정 합니다 true Binding .The following example binds the Age property to the TextBox and sets ValidatesOnDataErrors to true on the Binding. 사용자가 잘못 된 값을 입력 하면에 빨간색 테두리가 나타나고에서 TextBox ToolTip 오류 메시지를 보고 합니다.When the user enters an invalid value, a red border appears in the TextBox and the ToolTip reports the error message.

<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 있습니다.Setting this property provides an alternative to using the DataErrorValidationRule element explicitly. DataErrorValidationRule 소스 개체의 구현에 의해 발생 한 오류를 확인 하는 기본 제공 유효성 검사 규칙입니다 IDataErrorInfo .The DataErrorValidationRule is a built-in validation rule that checks for errors that are raised by the IDataErrorInfo implementation of the source object. 오류가 발생 하는 경우 바인딩 엔진은 ValidationError 오류가 있는를 만들어 Validation.Errors 바인딩된 요소의 컬렉션에 추가 합니다.If an error is raised, the binding engine creates a ValidationError with the error and adds it to the Validation.Errors collection of the bound element. 오류가 없으면 다른 규칙이 유효성 검사 문제를 일으키는 경우를 제외 하 고이 유효성 검사 피드백이 지워집니다.The lack of an error clears this validation feedback, unless another rule raises a validation issue.

ValidatesOnDataErrors .NET Framework 버전 3.5에서에서 도입 되었습니다.ValidatesOnDataErrors is introduced in the .NET Framework version 3.5. 자세한 내용은 .NET Framework 버전 및 종속성을 참조하십시오.For more information, see .NET Framework Versions and Dependencies.

적용 대상

추가 정보