我正在开发一款允许用户输入需要符合某些标准的ID值的应用。在视图模型中,我有一个属性来保存这个值,它执行一些初始验证(工作正常),然后启动一个线程,自动查找另一个系统中输入的值。最后一部分比较慢,所以我把它放在另一个线程中。问题是当在该线程中抛出with
时,它不会触发表单中文本框的验证样式。这是我的财产的样子:
ApplicationException
并不是说它似乎有那么重要,但这是该线程中发生的事情:
private string idNumber;
public string IdNumber
{
get { return idNumber; }
set
{
idNumber = value;
OnPropertyChanged("IdNumber");
if (String.IsNullOrEmpty(idNumber))
{
throw new ApplicationException("The ID Number is required.");
}
if (idNumber.Length < 8)
{
throw new ApplicationException("The ID Number should be 8 alphanumeric characters.");
}
Thread Validate = new Thread(ValidateIdNumber);
Validate.Start();
}
}
那么,是否有可能以某种方式将此 private void ValidateSecurity()
{
if (this.BadIdNumbers.Contains(this.IdNumber))
{
throw new ApplicationException("The ID Number you have entered is on either the Bad ID Number list.");
}
OurAutomationLibrary AutomatedApp = new OurAutomationLibrary(this.user, this.pass);
AutomatedApp.Get(this.IdNumber);
if (AutomatedApp.GetFile().Contains("ID-NOT-ON-FILE"))
{
AutomatedApp.Quit();
throw new ApplicationException("The ID Number you have entered is not on file.");
}
if (AutomatedApp.Read(2, 70, 5).Trim() == "")
{
AutomatedApp.Quit();
throw new ApplicationException("This ID Number is below $1.00.");
}
AutomatedApp.Quit();
}
}
路由到该文本框,以便触发验证样式?
同样,初始验证有效,但后者没有。此外,我需要将该集合检查到集合中的初始验证。
答案 0 :(得分:0)
在UI中绑定属性并使用异常消息更新该属性。