【发布时间】:2011-11-05 04:39:26
【问题描述】:
我实现了类型CustomDoubleConverter,它实现了IValueConverter。
我在xaml-file 中包含了Converter={StaticResource customDoubleConverter} 和相应的资源。
它工作正常。
问题是关于错误处理的。
我想检查 UI 字符串是否代表正确的double。如果否,则根据无效输入在标签上显示两条消息之一:空字符串或其他非双字符串。
在从字符串类型转换过程中发生错误时,应使用哪种方法在 UI 表单上显示自定义错误消息?
我尝试通过异常执行,但收到未处理的异常。 Tip: Do not throw an exception in a IValueConverter 说服我不要再尝试异常了。
在正确处理 MVVM 视图模型中的IDataErrorInfo 接口进行转换后,我能够检查双精度。但是它可以在成功的字符串到双重转换之后完成,这不是上面描述的情况。
我的文本框也有 ValidatesOnDataErrors="True" 和 ValidatesOnExceptions="True"。
如果有帮助,我会使用 MVVM 方法进行设计(类似于 WPF Apps With The Model-View-ViewModel Design Pattern 中描述的方法)。
简而言之:
我想从 TextBox 解析 double 并在 UI 标签上显示三个错误消息之一:
- 空字符串(如上所述),
- 无效的双字符串(如上所述),以及
- 负数(上面没有提到,但我是通过
IDataErrorInfo处理的——这不是问题)。
【问题讨论】:
标签: c# wpf data-binding error-handling type-conversion