IDataErrorInfo - 是否有集合不是空验证属性?

时间:2011-07-29 14:57:27

标签: c# wpf validation collections idataerrorinfo

我不知道我是否找不到它或者它是否存在,但是有没有验证属性来检查集合是否为空/空?

如果没有,那么有没有关于如何创建我自己的验证属性的好资源?

1 个答案:

答案 0 :(得分:1)

嗨,当你按照default.kramer建议使用DataAnnotations时,你可以创建为你的集合属性和类添加一个CustomValidation属性和ValidationMethod。见下面的例子。

ValidationMethod的重要部分是它是静态的,你必须将你正在验证的对象和ValidationContext添加到静态方法。

public class Order
{
[System.ComponentModel.DataAnnotations.Required( AllowEmptyStrings = false )]
public string Name
{
  get;
  set;
}

[System.ComponentModel.DataAnnotations.CustomValidation( typeof( Order ), "ValidateOrderLines" )]
public BindingList<OrderDetail> Lines
{
  get;
  set;
}

public static ValidationResult ValidateOrderLines( Order order, ValidationContext validationContext )
{
  ValidationResult result = new ValidationResult( "Lines are required!" );

  if ( order.Lines.Count != 0 )
    result = ValidationResult.Success;

  return result;
}

}

希望这有帮助。

Johan J v Rensburg