WPF Не могу изменить время в DatePicker - PullRequest
0 голосов
/ 02 января 2019

Я пытаюсь изменить дату во втором календаре каждый раз, когда я меняю дату в первом. Проблема в том, что дата во втором календаре не обновляет дни. Например: когда я выбираю 10 января 2018 года в первом календаре, у меня должен быть первый день, чтобы выбрать 11 января 2018 года во втором календаре, и я могу выбрать все дни, кроме первого. Вот мой код:

private void DateChanged(object sender, SelectionChangedEventArgs e)
    {
        Date2.DisplayDate = Date1.DisplayDate.AddDays(1);
        Date2.DisplayDateStart = Date1.DisplayDate.AddDays(1);
        Date2.DisplayDateEnd = Date1.DisplayDate.AddDays(93);
    }

1 Ответ

0 голосов
/ 02 января 2019

Я предполагаю, что в момент запуска события Date1.DisplayDate еще не обновлялся. Вы можете подтвердить это в отладчике. Вместо этого попробуйте Date1.SelectedDate.

private void DateChanged(object sender, SelectionChangedEventArgs e)
{
    Date2.DisplayDate = Date1.SelectedDate is null ? null : ((DateTime)Date1.SelectedDate).AddDays(1) as DateTime?;
    Date2.DisplayDateStart = Date1.SelectedDate is null ? null : ((DateTime)Date1.SelectedDate).AddDays(1) as DateTime?;
    Date2.DisplayDateEnd = Date1.SelectedDate is null ? null : ((DateTime)Date1.SelectedDate).AddDays(93) as DateTime?;
}

Обратите внимание, что вы также можете изменить Date2.SelectedDate.

Обновление: похоже, что SelectedDate является обнуляемым DateTime. Я добавил проверку, чтобы видеть, является ли это нулем. Если это ненулевое значение DateTime, я преобразую его в DateTime, чтобы получить доступ к методу расширения AddDays (), а затем приведу его обратно к обнуляемому DateTime.

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