Binding.ValidatesOnExceptions 属性
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
获取或设置一个值,该值指示是否包含 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
属性值
如果包含 ExceptionValidationRule,则为 true
;否则为 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
属性绑定到 ,并将 在 上Binding设置为 ValidatesOnExceptionstrue
。TextBox 当用户输入无效值时,会在 中 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 版本和依赖关系。