0

我有一个 TextBox,其值在解析为 int 后传递给对象中的 int 属性。

当我使用 ValidationProvider 时,在验证时会忽略此转换步骤,并且我收到一条错误消息,告诉我无法将字符串保存到 int32。

我可以通过在我的对象中创建一个字符串属性来解决这个问题,该属性充当表单中的文本框值和我的业务对象中的 int 值之间的桥梁,但我不喜欢这种方法,因为它需要更改我的域对象以取悦验证层.

如何验证转换后将其值存储到 int 的文本框,而不在域对象中创建桥属性?

4

2 回答 2

1

我找到了解决方案。

字符串到 int 的转换是自动进行的,但如果文本框留空,它将失败。

我使用了 ValidationProvider 的 ValueConvert 处理程序来解决这个问题,但我确信这是某种错误。

编辑:除非属性中有验证器,否则不会触发 ValueConvert 事件。当需要输入转换时,使用 [ObjectValidator] 作为虚拟对象来触发 ValueConvert 事件。

于 2009-02-09T22:46:44.237 回答
0

另一个“更好”的解决方案是将 TypeConversionValidator 添加到我的属性中。

示例属性:[TypeConversionValidator(typeof(int))]

编辑:忽略这一点。它不像我预期的那样工作。

于 2009-02-10T18:08:06.853 回答