Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Silverlight RIA服务验证,无效时不更新值_Silverlight_Validation_Ria - Fatal编程技术网

Silverlight RIA服务验证,无效时不更新值

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

在我的Silverlight RIA应用程序中,需要验证十进制属性。我尝试使用RegularExpression和Range在元数据中注释属性,如下所示:

//[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”将显示默认错误消息“格式无效”。

但我仍然对此有问题。如果我在输入框中输入字母,即使异常也会显示错误消息,“保存”按钮仍然被启用,因为此时没有验证错误。如何捕获此异常并添加验证错误,以便禁用“保存”按钮?