Wpf TextBox-使用整数值大于int.MaxValue(2147483647)的IDataErrorInfo进行验证时出现问题

Wpf TextBox-使用整数值大于int.MaxValue(2147483647)的IDataErrorInfo进行验证时出现问题,wpf,validation,Wpf,Validation,在我的WPF文本框中,我绑定了integer实体变量并设置了IntegerValidationAttribute。 当我输入文本时,IDataErrorInfo会被正确的错误信息触发 问题是当我输入的整数值超过int.MaxValue(2147483647)时,我会说我输入了 2147483649未触发IDataErrorInfo错误 我需要禁用/启用按钮取决于正确的整数值验证 请给我同样的建议 问候,, Vivek当您在文本框中放入类似“cclks”的内容时,您的验证也不会发生,或者 如果没有

在我的WPF文本框中,我绑定了integer实体变量并设置了IntegerValidationAttribute。 当我输入文本时,IDataErrorInfo会被正确的错误信息触发

问题是当我输入的整数值超过int.MaxValue(2147483647)时,我会说我输入了 2147483649未触发IDataErrorInfo错误

我需要禁用/启用按钮取决于正确的整数值验证

请给我同样的建议

问候,,
Vivek

当您在文本框中放入类似“cclks”的内容时,您的验证也不会发生,或者

如果没有,那么你有一些“仅数值文本框”,如果你有这样一个文本框,你可以进一步创建一个“仅整数数值文本框”


我总是在viewmodels中使用字符串属性,以便轻松验证所有输入,但当然我必须转换为模型的真实类型

Is
IntegerValidationAttribute
custom?您是否尝试过
RangeAttribute
?是的,IntegerValidationAttribute是我编写的自定义属性。您的IDataErrorInfo没有被触发,因为引发了BindingException,请检查您的输出窗口。@user698209:您是否尝试过将
ValidateOnceptions=True
添加到绑定中?正如blindmeis所指出的,类型描述符执行的转换失败,引发了一个异常。您可以发布xaml绑定、integer属性以及IDataErrorInfo和IntegerValidationAttribute吗?我使用IntegerValidationAttribute,这是我编写的自定义属性。我还使用了RangeAttribute,最大值设置为2147483647。输入2147483648时,不会触发IDataErrorInfo。我想在输入超过int.MaxValue时禁用按钮。请让我知道任何帮助。查看您的输出窗口,您应该会看到bindingexception。这就是为什么没有验证,甚至你的二传手没有被击中。当您输入非int的内容时,根本不可能验证在xaml中绑定的int属性;)看看我的答案,我使用字符串属性而不是int,因为我可以很容易地验证它们。当我输入文本或“cclks”时,就会发生验证。只有当值超过int.MaxValue(比如9999999999)时,它才不会触发IDataErrorInfo,因此我无法启用该按钮。是的,我很清楚何时使用字符串验证非常简单。现在我使用的是int数据库,这也是问题所在。我正在寻找解决这个问题的方法。我想知道为什么“cclks”输入会触发您的IDataErrorInfo?键入99999999999并发布bindingexception时,是否可以检查输出窗口。