请教各路大侠,小弟在WPF编写数据验证过程中遇到问题如下,在数据源对象中存在UnitCost属性,当设置属性时,如为负数,则跑出ArgumentException类型的异常。
在XAML中,将TextBox与其绑定,并在绑定对象中设置ExceptionValidationRule属性,本来期望ExceptionValidationRule能够捕获源数据中的异常,但是当程序运行后在TextBox中输入负数(如-1),程序即终止,显示用户代码未处理ArgumentException。请教大侠,为什么ExceptionValidationRule未能捕获ArgumentException异常,如能协助,不甚感激。
---------------------------------------------------以下是XAML文件中textbox及其数据绑定---------------------------------------------------------------
<TextBox HorizontalAlignment="Left" Height="23" Margin="211,176,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="225" Validation.Error="validationError">
<TextBox.Text>
<Binding Path="UnitCost" ValidatesOnExceptions="True" UpdateSourceTrigger="PropertyChanged">
<Binding.ValidationRules>
<ExceptionValidationRule></ExceptionValidationRule>
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
</TextBox>
---------------------------------------------------以下是数据源对象的UnitCost属性,在该属性中当值小于0时抛出异常-----------------------
private decimal unitCost;
public decimal UnitCost
{
get{return unitCost;}
set {
unitCost = value;
if (unitCost < 0)
throw new ArgumentException("UnitCost cannot be negative.");
else
{
unitCost = value;
}
OnPropertyChanged(new PropertyChangedEventArgs("UnitCost"));
}
}