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
    -这不是问题)

这完全取决于您的UI设计,或者换句话说,您将如何向用户通知问题。 我要说的是使用。比如说

假设用户在文本框中插入一个值。文本框有一个DataError依赖项
string
属性。转换器失败时,只需将该属性设置为适当的用户字符串(可以从本地化资源中恢复)。属性设置一次,TextBox变为红色,清除内容并打印转换器生成的错误文本

我的意思是,这个想法就是使用,它最终如何出现在最终的UI中取决于你的应用程序设计和你的选择

还有另一个相关的SO链接:


希望这有帮助。

我将通过表单上的标签通知用户,更新问题。我在design.ok中使用MVVM方法,所以您可以在标签上设置依赖项,当转换器失败时,它会设置它。标签接收到的信号变为可见,并显示从转换器传递的文本。谢谢,我会尝试,只是有非常小的经验与WPF.V工作!通过ValidationRule实现,通过您答案中的最后一个链接找到。DependencyProperty的使用似乎更复杂。谢谢