Сценарий таков:
Существует 4 элемента управления, два раскрывающихся списка, два средства выбора даты и некоторые правила проверки. Одним из них является мастер выпадающий
В зависимости от значения в главном раскрывающемся списке одно правило проверки будет применено к двум указателям даты, а другое - к раскрывающемуся элементу управления.
Эти правила проверки сработают, если пользователь изменит значение в любом из четырех элементов управления.
Необходимо указать поставщика ошибок при последнем редактировании элемента управления.
Я думаю о создании одного метода для каждого правила проверки. Основной метод с синтаксисом:
Private void ValidateData(Control ctrl)
{
ClearAllErrors();
switch(value value in master dropdown)
case 'Value 1' : Rule1(ctrl)
case 'Value 2' : Rule2(ctrl)
....
}
И методы правил такие:
Private void Rule1(Control ctrl)
{
//Rule Logic
//Eg. Date in dropdown should between 5 days after the date in dropdown1
//and 3 days before the date in dropdown2.
//Set error provider on the control if rule breaks.
}
Теперь при проверке событий любого из четырех элементов управления я передам этот элемент управления и вызову метод ValidateData ().
Идея состоит в том, чтобы сохранить код поддерживаемым. Может ли этот подход быть оптимизирован каким-либо образом, или есть какой-то лучший способ справиться с такого рода проверками.