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
Значение свойства
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: версии и зависимости.