验证UWP文本框

时间:2017-10-03 06:09:32

标签: validation uwp

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

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

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

您可以在Github Here!

上找到它

我会快速告诉您样品,有两种解决方案:

  1. 快速和肮脏:这花费了我最多的时间,我不得不写一些非常微不足道的代码。我不推荐这种方式,但这种方式并不复杂且直截了当。
  2. 动态内容方式(推荐):在这里,我保持可扩展的东西可能有点复杂,但它比第一种方式更易于管理和工作。
  3. 由于您正在使用MVVM,因此我也遵守了同样的原则。

    请注意:我还没有完全复制你的模型,因为我不知道在UI中放什么以及所有的验证都是如此,但是从样本中你可以&# 39;能够搞清楚。

    我希望这有助于在任何疑问的情况下随时使用评论部分。

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

    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继承添加更多类型,并在此处添加字段。与添加更多字段时的声音一样简单。