Поделиться через


Binding.ValidatesOnDataErrors Свойство

Определение

Получает или задает значение, указывающее, включать ли объект 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

Значение свойства

true для включения DataErrorValidationRule; в противном случае — false.

Примеры

В следующих примерах используется IDataErrorInfo и ValidatesOnDataErrors для проверки введенных пользователем TextBoxданных в . В первом примере создается тип данных, реализующий отчет об ошибках 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

В следующем примере свойство привязывается Age к TextBox и задает значение trueValidatesOnDataErrors в Binding. Когда пользователь вводит недопустимое значение, в элементе 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: версии и зависимости.

Применяется к

См. также раздел