Silverlight RIA服务验证,无效时不更新值
在我的Silverlight RIA应用程序中,需要验证十进制属性。我尝试使用RegularExpression和Range在元数据中注释属性,如下所示:Silverlight RIA服务验证,无效时不更新值,silverlight,validation,ria,Silverlight,Validation,Ria,在我的Silverlight RIA应用程序中,需要验证十进制属性。我尝试使用RegularExpression和Range在元数据中注释属性,如下所示: //[RegularExpression(@"^[1-9]\d*(\.\d+)?$", ErrorMessage = "Quantity has to be a positive numeric value")] [Range(typeof(decimal), "1", "1000", ErrorMessage = "Quant
//[RegularExpression(@"^[1-9]\d*(\.\d+)?$", ErrorMessage = "Quantity has to be a positive numeric value")]
[Range(typeof(decimal), "1", "1000", ErrorMessage = "Quantity must be between {1} and {2}")]
当添加新实体时,两者都可以验证数字值,但如果我输入字母,两者都不会标记任何错误,但也不会更新属性。例如,如果我先键入2,然后更改为“test”,则文本框上不会显示错误消息。保存实体时,属性值仍为2
这是预期的行为吗?如果是,如何将任何非数字项标记为错误
谢谢。我找到了原因。由于属性类型是decimal,当输入文本时,它将抛出一个异常,并且永远不会到达“Set”,因此不会触发验证。在控件上设置“ValidatesOnExceptions=True”将显示默认错误消息“格式无效”。但我仍然对此有问题。如果我在输入框中输入字母,即使异常也会显示错误消息,“保存”按钮仍然被启用,因为此时没有验证错误。如何捕获此异常并添加验证错误,以便禁用“保存”按钮?