gpt4 book ai didi

c# - WPF:如何在 IValueConverter 抛出的 UI 中显示错误消息?

转载 作者:太空宇宙 更新时间:2023-11-03 11:32:49 25 4
gpt4 key购买 nike

我实现了 CustomDoubleConverter 类型,它实现了 IValueConverter。我将其包含在 Converter={StaticResource customDoubleConverter}xaml 文件中。它工作正常。

问题是关于错误处理的。我想检查 UI 字符串是否代表正确的 double。如果否,则根据无效输入在标签上显示两条消息之一:空字符串或其他非双字符串。

当从字符串类型转换过程中发生错误时,应使用哪种方法在 UI 窗体上显示自定义错误消息?

我试图通过异常来做,但收到了未处理的异常。 Tip: Do not throw an exception in a IValueConverter说服我不再尝试异常。

在 MVVM 的 View 模型中,通过正确处理 IDataErrorInfo 接口(interface),我能够在转换后进行双重检查。但它可以在字符串成功转换为 double 后完成,而上述情况并非如此。

我的文本框也有 ValidatesOnDataErrors="True"ValidatesOnExceptions="True"

如果有帮助,我会使用 MVVM 方法进行设计(类似于 WPF Apps With The Model-View-ViewModel Design Pattern 中描述的方法)。

简而言之:

我想从 TextBox 解析 double 并在 UI 标签上显示三个错误消息之一:

  • 空字符串(上面提到的),
  • 无效的双字符串(如上所述),以及
  • 负数(上面没有提到,但我通过 IDataErrorInfo 处理了它 - 这不是问题)。

最佳答案

这完全取决于您的 UI 设计,或者换句话说,如何您将问题通知给用户。我会说使用 Dependency Properties .例如。

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

我的意思是使用 Dependency Properties , 它将如何在最终 UI 中结束取决于您的应用程序设计和您的选择。

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

How to handle exception in Value converter so that custom error message can be displayed

希望这对您有所帮助。

关于c# - WPF:如何在 IValueConverter 抛出的 UI 中显示错误消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7216384/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com