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

问题描述 投票:0回答:1

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

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

c# wpf validation collections idataerrorinfo
1个回答
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;
}

}

© www.soinside.com 2019 - 2024. All rights reserved.