Set Accessor получает три раза для WPF DatePicker при изменении месяца - PullRequest
0 голосов
/ 15 октября 2019

У меня есть два 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. Я не мог понять, почему это происходит.

Пожалуйста, помогите мне исправить эту вещь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...