【问题标题】:Validation for UWP textboxUWP 文本框的验证
【发布时间】:2017-10-03 06:09:31
【问题描述】:

我目前正在开发一个 UWP 应用程序,我对这个平台非常陌生,需要一些帮助。

感谢您的帮助!

【问题讨论】:

  • 你在使用数据绑定吗?或者你只是为了它?您是要边输入边验证还是单击按钮进行验证?
  • 嗨!我正在使用数据注释,我希望在单击按钮时进行验证
  • 哦,那个很简单,你用数据绑定?如果是,我将分享一个快速演示。
  • 很抱歉,我对编码世界很陌生,但我可以知道数据绑定是什么意思吗?我个人觉得我没有使用数据绑定......因为我正在创建一个表单,用户可以在其中输入信息并将其存储在数据库中。因此,不涉及数据的更新或编辑。
  • 更好的是,对于表单,这是最好的方法,所以我将使用数据绑定,如果您觉得对此有任何帮助,您可以使用 cmets部分。如果我使用数据绑定,我将花费更少的时间

标签: validation uwp


【解决方案1】:

所以我能够编写一个演示项目。

你可以在Github Here!找到它

我会快速告诉你示例,有两种解决方案:

  1. 又快又脏:这对我来说花费的时间最多,我不得不为一些非常琐碎的事情编写大量代码。我不推荐这种方式,但这种方式不复杂且直接。
  2. 动态内容方式(推荐):在这里,我保持可扩展性可能有点复杂,但它更易于管理并且比第一种方式工作得更好。

由于您使用的是MVVM,因此我也使用了相同的方法。

请注意:我没有完全复制您的模型,因为我不知道在 UI 中放置什么以及所有的验证是什么,但是从示例中您将能够想办法。

我希望这会有所帮助,如有任何疑问,请随时使用 cmets 部分。

在推荐的解决方案中,您要控制的关键区域只是一个集合:

internal ObservableCollection<ComponentModel.IFormControl> FormFields => new ObservableCollection<ComponentModel.IFormControl>(new List<ComponentModel.IFormControl>()
    {
        new ViewModel.TextFieldInputControlViewModel(){HeaderName = "Name",PlaceholderText="e.g. John Doe",IsMandatory = true },
        new ViewModel.TextFieldInputControlViewModel(){HeaderName = "Admin No" , PlaceholderText = "e.g. ABC123"},
        new ViewModel.TextFieldInputControlViewModel(){HeaderName = "Phone" , PlaceholderText = "e.g. +32538349182" ,IsMandatory = true,MatchingPattern = @"^[\+]?[1-9]{1,3}\s?[0-9]{6,11}$"},
        new ViewModel.TextFieldInputControlViewModel(){HeaderName = "Item Description", PlaceholderText = "e.g. My Fav Item",IsMandatory = true },
        new ViewModel.TextFieldInputControlViewModel(){HeaderName = "Location Lost", PlaceholderText = "e.g. Alaska",IsMandatory = true },
        new ViewModel.DateTimeFieldInputViewModel(){ HeaderName = "Date Lost",IsMandatory = true}
    });

您可以从接口IFormControl 继承添加更多类型,只需在此处添加字段。在添加更多字段时就像听起来一样简单。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-30
    • 2011-09-18
    • 2012-11-18
    • 1970-01-01
    • 2023-04-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多