C# WPF:如何在IValueConverter抛出的UI中显示错误消息?
我实现了类型C# WPF:如何在IValueConverter抛出的UI中显示错误消息?,c#,wpf,data-binding,error-handling,type-conversion,C#,Wpf,Data Binding,Error Handling,Type Conversion,我实现了类型CustomDoubleConverter,它实现了IValueConverter。 我将它Converter={StaticResource customDoubleConverter}和相应的资源包含在xaml-文件中。 它很好用 问题是关于错误处理。 我想检查UI字符串是否表示正确的double。如果否,则根据无效输入在标签上显示两条消息中的一条:空字符串或其他非双字符串 从字符串转换类型时发生错误时,应使用哪种方法在UI窗体上显示自定义错误消息? 我试图通过异常执行此操作,但
CustomDoubleConverter
,它实现了IValueConverter
。
我将它Converter={StaticResource customDoubleConverter}
和相应的资源包含在xaml
-文件中。
它很好用
问题是关于错误处理。
我想检查UI字符串是否表示正确的double
。如果否,则根据无效输入在标签上显示两条消息中的一条:空字符串或其他非双字符串
从字符串转换类型时发生错误时,应使用哪种方法在UI窗体上显示自定义错误消息?
我试图通过异常执行此操作,但收到未处理的异常。说服我不再尝试异常
通过正确处理MVVM视图模型中的IDataErrorInfo
接口,我能够在转换后检查double。但它可以在成功的字符串到双精度转换后完成,而不是上述情况
我的文本框中还有validatesOnDaerRors=“True”
和validatesOnceptions=“True”
如果有帮助的话,我会使用MVVM方法进行设计(类似于中描述的方法)
简而言之:
我想从TextBox
解析double,并在UI标签上显示三条错误消息中的一条:
- 空字符串(如上所述)
- 无效的双字符串(如上所述),以及
- 负数(上面没有提到,但我通过
-这不是问题)IDataErrorInfo
string
属性。转换器失败时,只需将该属性设置为适当的用户字符串(可以从本地化资源中恢复)。属性设置一次,TextBox变为红色,清除内容并打印转换器生成的错误文本
我的意思是,这个想法就是使用,它最终如何出现在最终的UI中取决于你的应用程序设计和你的选择
还有另一个相关的SO链接:
希望这有帮助。我将通过表单上的标签通知用户,更新问题。我在design.ok中使用MVVM方法,所以您可以在标签上设置依赖项,当转换器失败时,它会设置它。标签接收到的信号变为可见,并显示从转换器传递的文本。谢谢,我会尝试,只是有非常小的经验与WPF.V工作!通过ValidationRule实现,通过您答案中的最后一个链接找到。DependencyProperty的使用似乎更复杂。谢谢