【问题标题】:Binding double to Textbox with validation in windows store apps在 Windows 商店应用程序中通过验证将双重绑定到文本框
【发布时间】:2016-07-05 09:18:26
【问题描述】:

我正在使用 prism for windows 8 的 BindableBase 类来验证属性,直到现在我可以绑定字符串属性并使用自定义验证器来验证它们。

现在我想通过双向绑定将双精度值直接绑定到视图。问题是当用户输入任何字母字符时,该双精度属性的设置器不会触发,因为它不是双精度值并且可能触发转换异常,但因此我无法验证我的属性。

我可以使用转换器吗?但是如何引发验证异常并使转换器中的属性无效

有人知道怎么做吗?

【问题讨论】:

    标签: c# validation xaml windows-store-apps prism


    【解决方案1】:

    双向绑定双精度确实会给 Windows 应用商店应用程序带来一些问题(输入验证、本地化等)。我通常做的是将另一个属性表示为 string 并绑定字符串值。您还可以在此字符串属性上添加验证,并使用 double.TryParse() 检查它是否解析为双精度。

    希望不久的将来会公布一个更好的 Windows 10 UWP 解决方案,以防止这种黑客攻击的需要。

    【讨论】:

    • 非常感谢您的回答。我也有这样的想法,但它对我来说非常耗时,因为我需要与 UI 绑定大量属性。在转换器的帮助下,在 convertback() 中将检查 double.TryParse() ,如果没有,则返回 double.MaxValue 并在自定义验证类中处理相同的值。请给我你的建议。
    • 我想这也可以。结论是您不能相信系统会为您进行转换。
    猜你喜欢
    • 2012-10-14
    • 2012-12-22
    • 2015-06-02
    • 1970-01-01
    • 2015-09-05
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多