Binding.ValidatesOnExceptions Свойство

Определение

Получает или задает значение, указывающее, включать ли объект ExceptionValidationRule.

public:
 property bool ValidatesOnExceptions { bool get(); void set(bool value); };
public bool ValidatesOnExceptions { get; set; }
member this.ValidatesOnExceptions : bool with get, set
Public Property ValidatesOnExceptions As Boolean

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

Boolean

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

Примеры

В следующих примерах используется ValidatesOnExceptions для проверки входных данных пользователя в объекте TextBox. В первом примере создается тип данных, который создает исключение, если Age свойству присвоено недопустимое свойство.

public class PersonThrowException
{
    private int age;

    public int Age
    {
        get { return age; }
        set
        {

            if (value < 0 || value > 150)
            {
                throw new ArgumentException("Age must not be less than 0 or greater than 150.");
            }
            age = value;
        }
    }
}
Public Class PersonThrowException
    Private m_age As Integer

    Public Property Age() As Integer
        Get
            Return m_age
        End Get
        Set(ByVal value As Integer)

            If value < 0 OrElse value > 150 Then
                Throw New ArgumentException("Age must not be less than 0 or greater than 150.")
            End If
            m_age = value
        End Set
    End Property
End Class

В следующем примере свойство привязывается Age к свойству TextBox и присваивается ValidatesOnExceptions true ей Binding. Когда пользователь вводит недопустимое значение, красная граница отображается в TextBox ToolTip сообщении об ошибке.

<StackPanel Margin="20">
  <StackPanel.Resources>
    
    <src:PersonThrowException 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>
      <!--By setting ValidatesOnExceptions to True, it checks for exceptions
        that are thrown during the update of the source property.
        An alternative syntax is to add <ExceptionValidationRule/> within
        the <Binding.ValidationRules> section.-->
      <Binding Path="Age" Source="{StaticResource data}"
               ValidatesOnExceptions="True"
               UpdateSourceTrigger="PropertyChanged">
      </Binding>
    </TextBox.Text>
  </TextBox>
  <TextBlock>Mouse-over to see the validation error message.</TextBlock>
</StackPanel>

Комментарии

Задание этого свойства предоставляет альтернативу явному использованию ExceptionValidationRule элемента. Это ExceptionValidationRule встроенное правило проверки, которое проверяет наличие исключений, создаваемых во время обновления исходного свойства. При возникновении исключения обработчик привязки создает ValidationError исключение и добавляет его в коллекцию Validation.Errors привязанного элемента. Отсутствие ошибки очищает этот отзыв о проверке, если другое правило не вызывает проблему проверки.

ValidatesOnExceptionsпредставлен в платформа .NET Framework версии 3.5. Дополнительные сведения см. в разделе Платформа.NET Framework: версии и зависимости.

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

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