为什么我的IDataErrorInfo接口模型可以验证文本,但不能验证默认的Windows int验证错误?
答案 0 :(得分:0)
IDataErrorInfo接口验证要求将要更新为数据源的输入值正确转换为源类型,因此无法将空字符串字段正确转换为int值,因此源数据将保留原始值,并且IDataErrorInfo无法通知该错误。 您将需要一些自定义验证规则。
答案 1 :(得分:0)
您只能将int
属性设置为有效的int
值,而不能设置其他任何属性。验证视图将属性设置为int
并不是视图模型的责任。该类型是视图模型API的一部分,并且是视图模型与任何使用类(包括视图)之间的协定。
这种验证是由WPF框架本身执行的。如果要自定义它,则可以在视图或控件中使用验证规则。有一个可用的示例here。
但是您不能在视图模型中做任何事情(除了将属性的类型更改为string
之外,但这通常是一个坏主意)。