У меня есть два поля даты: StartDate и EndDate. StartDate должен быть раньше, чем EndDate.
Если пользователь меняет StartDate на нечто большее, чем EndDate, вокруг этой DatePicker появляется красная рамка и наоборот. Если пользователь меняет второй ящик, чтобы теперь был выбран диапазон дат, в первом поле все еще есть ошибка проверки.
Как я могу проверить оба поля даты, когда один из них изменится?
Я использую IDataErrorInfo
public string GetValidationError(string propertyName)
{
switch (propertyName)
{
case "StartDate":
if (StartDate > EndDate)
s = "Start Date cannot be later than End Date";
break;
case "EndDate":
if (StartDate > EndDate)
s = "End Date cannot be earlier than Start Date";
break;
}
return s;
}
Я не могу просто создать событие PropertyChange, потому что мне нужно проверить оба поля, когда они меняются, поэтому, если оба они поднимают событие PropertyChange для другого, он будет застревать в бесконечном цикле.
Мне также не нравится идея очистки поля Date, если другая дата возвращает ошибку проверки.