IDataErrorInfo - Есть ли в коллекции не пустой атрибут проверки? - PullRequest
3 голосов
/ 29 июля 2011

Я не знаю, могу ли я просто найти его или он не существует, но есть ли какой-либо атрибут проверки, который проверяет, является ли коллекция нулевой / пустой или нет?

Если нет, есть ли хороший ресурс о том, как создать свой собственный атрибут проверки?

1 Ответ

1 голос
/ 30 июля 2011

Привет, когда вы используете DataAnnotations согласно default.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;
}

}

Надеюсь, это поможет.

Йохан против Ренсбурга

...