Выборочная проверка группы флажков - PullRequest
0 голосов
/ 11 января 2011

Я пытаюсь понять, как я могу проверить группу флажков.

Моя модель:

[MinSelected(MinSelected = 1)]
public IList<CheckList> MealsServed { get; set; }

Я хотел бы иметь возможность создать пользовательский валидатор, который будетубедитесь, что установлен хотя бы 1 (или другой номер) флажок.Если нет, отобразите ErrorMessage.

#region Validators

public class MinSelectedAttribute : ValidationAttribute
{
    public int MinSelected { get; set; }

    // what do I need to do here?
}

Может ли кто-нибудь помочь мне с этим?

1 Ответ

1 голос
/ 11 января 2011

Вы можете переопределить метод IsValid и убедиться, что коллекция содержит по крайней мере MinSelected элементов с IsChecked, равным true (я полагаю, что ваш CheckList класс имеет IsChecked свойство):

public class MinSelectedAttribute : ValidationAttribute
{
    public int MinSelected { get; set; }

    public override bool IsValid(object value)
    {
        var instance = value as IList<CheckList>;
        if (instance != null)
        {
            // make sure that you have at least MinSelected
            // IsChecked values equal to true inside the IList<CheckList>
            // collection for the model to be valid
            return instance.Where(x => x.IsChecked).Count() >= MinSelected;
        }
        return base.IsValid(value);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...