我实现了CustomDoubleConverter
类型,它实现了IValueConverter
。
我在Converter={StaticResource customDoubleConverter}
- 文件中包含了它xaml
和相应的资源。
它工作正常。
问题是关于错误处理。
我想检查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
处理的 - 这不是问题)。答案 0 :(得分:2)
它严格依赖于您的UI设计,换句话说,如何您将向用户通知问题。 我会说使用Dependency Properties。例如。
假设用户在TextBox中插入一个值。 TextBox具有DataError依赖项string
属性。转换器在发生故障时,只需将该属性设置为适当的用户字符串(可以从本地化资源中恢复)。一次性属性设置,TextBox变为红色,清除内容并打印出转换器生成的错误文本。
我的意思是使用Dependency Properties,它最终会在最终用户界面中取决于您的应用设计和您的选择。
还有另一个相关的SO链接:
How to handle exception in Value converter so that custom error message can be displayed
希望这有帮助。