在 Windows 商店应用程序中通过验证将双重绑定到文本框

Posted

技术标签:

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

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

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

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

有人知道怎么做吗?

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

非常感谢您的回答。我也有这样的想法,但它对我来说非常耗时,因为我需要与 UI 绑定大量属性。在转换器的帮助下,在 convertback() 中将检查 double.TryParse() ,如果没有,则返回 double.MaxValue 并在自定义验证类中处理相同的值。请给我你的建议。 我想这也可以。结论是您不能相信系统会为您进行转换。

以上是关于在 Windows 商店应用程序中通过验证将双重绑定到文本框的主要内容,如果未能解决你的问题,请参考以下文章

在IIS7中通过PHP连接到SQL SERVER 2008(使用Windows身份验证)?

ASP.NET 中通过Form身份验证 来模拟Windows 域服务身份验证的方法

Apple 开发人员使用双重身份验证注册

如何使用 serilog 在 kibana 中通过身份验证将日志设置为 ELK

在 aspnet 应用程序中通过模拟获取 WindowsIdentity 的不同方法

如何在 Python 中通过身份验证从 URL 获取 CSV 文件