У меня есть два DatePickers (Startdate и Enddate) в моем представлении, которые связаны с двумя различными свойствами типа DateTime? в ViewModel. У меня есть проверка в моей модели представления, которая всегда проверяет, меньше ли Startdate, чем Дата окончания или нет.
Мой код просмотра выглядит так:
<DatePicker Style="{StaticResource DatePickerStyle}" Focusable="False"
SelectedDate="{Binding EViewModel.StartDate}"
x:Name="EStartDate"/>
<DatePicker Style="{StaticResource DatePickerStyle}" Focusable="False"
SelectedDate="{Binding EViewModel.EndDate}"
x:Name="EEndDate"/>
Мой код валидатора выглядит следующим образом:
public static string StartandEndDateFieldValidator(object value, DateTime? startDate, DateTime? endDate)
{
string errorMsg = null;
if (value != null)
{
if (startDate > endDate)
{
errorMsg = DateErrorMessage;
MessageBox.Show(errorMsg);
}
}
return errorMsg;
}
Моя проблема в том, что когда я выбираю дату начала как сегодня иоткройте выпадающий список даты окончания и выберите предыдущий месяц, используя кнопку навигатора месяца (стрелка в левой части месяца в верхней части выпадающего списка), 1-го числа предыдущего месяца выбирается по умолчанию и устанавливается, что accesor вызывается 3 раза и, следовательно, проверкавсплывает грядет трижды. В этом случае я должен нажать 3 раза на Ok. Я не мог понять, почему это происходит.
Пожалуйста, помогите мне исправить эту вещь.