我有一个TextBox,其值在被解析为int后传递给对象中的int属性。
当我使用ValidationProvider时,在验证时会忽略此转换步骤,并且我收到错误,告诉我无法将字符串保存到int32。
我可以通过在我的对象中创建一个字符串属性来解决这个问题,该属性充当表单中的文本框值和业务对象中的int值之间的桥梁,但我不喜欢这种方法,因为它需要更改我的域对象验证层。
如何验证在转换后将其值存储到int而不在域对象中创建桥属性的文本框?
答案 0 :(得分:1)
我找到了解决方案。
字符串到int转换是自动进行的,但如果文本框留空则会失败。
我使用ValidationProvider的ValueConvert处理程序来修复此问题,但我确信这是某种错误。
编辑:除非属性中有Validator,否则不会触发ValueConvert事件。当预期输入转换时,使用[ObjectValidator]作为虚拟对象来触发ValueConvert事件。
答案 1 :(得分:0)
另一个“更好”的解决方案是将TypeConversionValidator添加到我的属性中。
示例属性:[TypeConversionValidator(typeof(int))]
编辑:忽略这一点。它不像我预期的那样工作。