C# IDataErrorInfo-是否存在集合不为空的验证属性?

C# IDataErrorInfo-是否存在集合不为空的验证属性?,c#,wpf,validation,collections,idataerrorinfo,C#,Wpf,Validation,Collections,Idataerrorinfo,我不知道我是否只是找不到它或者它是否不存在,但是是否有任何验证属性来检查集合是否为null/空 如果没有,是否有关于如何创建我自己的验证属性的好资源?当您按照默认值使用DataAnnotations时,大家好。kramer建议您可以创建一个CustomValidation属性,并向集合属性和类添加ValidationMethod。见下面的例子 ValidationMethod的重要部分是它是静态的,您必须将要验证的对象和ValidationContext添加到静态方法中 public class

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


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

当您按照默认值使用DataAnnotations时,大家好。kramer建议您可以创建一个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;
}
公共类秩序
{
[System.ComponentModel.DataAnnotations.Required(AllowEmptyStrings=false)]
公共字符串名
{
得到;
设置
}
[System.ComponentModel.DataAnnotations.CustomValidation(订单类型),“ValidateOrderLines”)]
公共绑定列表行
{
得到;
设置
}
公共静态ValidationResult ValidateOrderLines(订单顺序、ValidationContext ValidationContext)
{
ValidationResult=新的ValidationResult(“需要行!”);
如果(order.Lines.Count!=0)
结果=ValidationResult.Success;
返回结果;
}
}

希望这有帮助


约翰J v伦斯堡

IDataErrorInfo与属性无关。你是在谈论数据注释吗?是的,我看过一篇文章,讨论了在IDataErrorInfo中使用ValidationAttribute。所以我想知道是否有一个验证属性来检查集合是空的还是空的?