我试图弄清楚如何在UWP下进行数据验证,但根据我发现的情况,基本上还没有什么可以实现的。
因此,我尝试实现我的自定义验证逻辑。我现在遇到的问题是,我在一个上显示错误信息TextBlock
而不是直接在特定的TextBox
其中包含数据错误。
这就是我现在所做的:
public class Customer : ViewModel
{
private string _Name = default(string);
public string Name { get { return _Name; } set { SetProperty(ref _Name, value); OnPropertyChanged("IsValid"); } }
private string _Surname = default(string);
public string Surname { get { return _Surname; } set { SetProperty(ref _Surname, value); OnPropertyChanged("IsValid"); } }
private DateTime _DateOfBirth = default(DateTime);
public DateTime DateOfBirth { get { return _DateOfBirth; } set { SetProperty(ref _DateOfBirth, value); OnPropertyChanged("IsValid"); } }
public int ID { get; set; }
public bool IsValid
{
get
{
//restart error info
_ErrorInfo = default(string);
if (string.IsNullOrWhiteSpace(Name))
_ErrorInfo += "Name cannot be empty!" + Environment.NewLine;
if (string.IsNullOrWhiteSpace(Surname))
_ErrorInfo += "Surname cannot be empty!" + Environment.NewLine;
//raise property changed
OnPropertyChanged("ErrorInfo");
return !string.IsNullOrWhiteSpace(Name) &&
!string.IsNullOrWhiteSpace(Surname);
}
}
private string _ErrorInfo = default(string);
public string ErrorInfo { get { return _ErrorInfo; } set { SetProperty(ref _ErrorInfo, value); } }
}
问题:
如何调整我的代码,以便我可以在每个文本框下分配标签并在那里显示验证错误,而不是使用一个包含所有错误信息的标签?我应该为此使用字典吗?如果是,我如何将它绑定到我的视图?
我很快就喜欢上了 Prism,看看这个精彩的演示使用 Prism 进行用户输入验证以及 UWP 上的数据注释 http://blogs.u2u.be/diederik/post/2015/09/27/User-input-validation-with-Prism-and-data-annotations-on-the-UWP.aspx.
它比我在这里输入的任何内容都要好。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)