我正在使用 MVVM 架构开发 WPF 应用程序。我是 WPF 的业余爱好者,所以请耐心等待。
我有两个模型类。父类具有另一个(子)类的对象作为其属性。(我的意思是嵌套对象而不是继承对象)
例如,考虑以下场景。
public class Company
{
public string CompanyName {get; set;}
public Employee EmployeeObj {get; set;}
}
public class Employee
{
public string FirstName {get; set;}
public string LastName {get; set;}
}
我想使用 Enterprise Library Validation Block 来验证 Employee 实体的属性。
我可以通过在员工类中实现 IDataErroInfo 接口来做到这一点,如下所示
public class Employee : IDataErrorInfo
{
[NotNullValidator(MessageTemplate="First Name is mandatory"]
public string FirstName {get; set;}
[StringLengthValidator(0,20,MessageTemplate="Invalid")]
public string LastName {get; set;}
public string Error
{
get
{
StringBuilder error = new StringBuilder();
ValidationResults results = Validation.ValidateFromAttributes<Employee>(this);
foreach (ValidationResult result in results)
{
error.AppendLine(result.Message);
}
return error.ToString();
}
}
public string this[string propertyName]
{
get
{
ValidationResults results = Validation.ValidateFromAttributes<Employee>(this);
foreach (ValidationResult result in results)
{
if (result.Key == propertyName)
{
return result.Message;
}
}
return string.Empty;
}
}
}
我不想为我创建的每个子模型实现 IDataErroInfo。
有没有办法通过在父(公司)类上实现 IDataErrorInfo 来验证 Employee 对象?
还有任何触发器可以开始验证对象。我只想在我想要的时候而不是一直验证对象。