Windows Phone 8.1通用应用程序中的字段验证

3
在Windows Phone 8中,我们使用System.ComponentModel.DataAnnotations在ViewModel中验证输入并在控件工具提示中显示验证错误消息。在Windows Phone 8.1通用应用程序中,什么是等效的方法和最佳实践来验证输入?

你正在使用sqlite并且在注释方面遇到了问题吗? - Juan
2个回答

4
自从Windows 8.1通用应用程序不支持数据注释以来,您不能使用[Required][RegularExpression]属性处理验证。如果您查看Codeplex上的Prism for WinRT Universal Converged Branch,您会注意到即使Prism团队的AdventureWorks Shopper应用程序也由于Microsoft提供的通用库缺乏支持而注释了数据注释。
为了解决这个问题,我写了一个简单(虽然冗长)的方法来处理数据验证。您可以验证模型对象,基类将处理通知UI绑定验证失败。
我有一篇博客文章解释我为什么选择了这种方法。该帖子有助于理解我为什么以这种方式编写它,但与实际来源有些过时。源代码附带一个针对Windows 8.1和Windows Phone 8.1的示例通用WinRT项目,具有完整的验证功能。

-4
任何接受用户输入的应用程序都应确保数据有效性。例如,应用程序可以检查输入是否仅包含特定范围内的字符、是否具有特定长度或是否与特定格式相匹配。若没有进行验证,则用户可能提供导致应用程序崩溃的数据。验证强制执行业务规则,并防止攻击者注入恶意数据。
[Required(ErrorMessageResourceType = typeof(ErrorMessagesHelper), ErrorMessageResourceName = "RequiredErrorMessage")]
[RegularExpression(NAMES_REGEX_PATTERN, ErrorMessageResourceType = typeof(ErrorMessagesHelper), ErrorMessageResourceName = "RegexErrorMessage")]
public string FirstName
{
    get { return _firstName; }
    set { SetProperty(ref _firstName, value); }
}

http://code.msdn.microsoft.com/windowsapps/Prism-for-WinRTValidatableB-2acb9892

http://msdn.microsoft.com/en-us/library/windows/apps/xx130659.aspx


数据注释在Windows 8.1和Windows Phone 8.1的通用WinRT应用程序中不受支持。它们仅在每个平台的独立WinRT项目中受支持。我不知道为什么Microsoft没有将它们包含在通用构建中。 - Johnathon Sullinger

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接