UWP CalenderView Установить дату и фокус - PullRequest
0 голосов
/ 24 октября 2018

У меня проблемы с настройкой текущей даты и фокусировкой на CalendatView в Uwp.Когда я нажимаю кнопку ввода на кнопке, я хочу, чтобы CalendarView был видимым, выбирал дату и фокусировался на этой дате, чтобы я мог использовать клавиши со стрелками для выбора другой даты.

cal.SelectionMode = CalendarViewSelectionMode.Single;
cal.SetDisplayDate(DateTimeOffset.Now.Date);
selectedDayItem.Focus(FocusState.Programmatic);

selectedDayItem является полем, являющимсяустановите в обработчике:

private void cal_CalendarViewDayItemChanging(CalendarView sender,
                                             CalendarViewDayItemChangingEventArgs args)
{
     selectedDayItem = args.Item;
}

В календаре отображается текущая устанавливаемая дата, но клавиши со стрелками не отображаются в этой ячейке. Текущая выбранная ячейка, которая перемещается клавишами со стрелками, кажется, установленакаким-то случайным образом?Я просто хочу, чтобы текущая выбранная ячейка находилась там, где была установлена ​​дата. Не установлена ​​ли текущая выбранная ячейка?

1 Ответ

0 голосов
/ 24 октября 2018
Событие

CalendarviewDayItemChanging вызывается всякий раз, когда изменяется представление календаря, и вызывается для каждой отображаемой даты .Это означает, что он будет вызываться, например, 31 раз, когда вы отправляетесь в октябрь, и ваш текущий код будет просто содержать тот элемент дня, который был изменен последним (что может быть довольно случайным и зависит от реализации CalendarView).Вместо этого вам нужно будет проверить CalendarViewDayItem.Date, чтобы убедиться, что вы получаете правильный:

private void cal_CalendarViewDayItemChanging(CalendarView sender, 
                                             CalendarViewDayItemChangingEventArgs args)
{
    if (args.Item.Date == mySelectedDate)
    {
        selectedDayItem = args.Item;
    }         
}

selectedDayItem теперь будет экземпляром с выбранной датой.Тем не менее, я ожидаю, что будет проблема в случае, если выбранная дата уже отображается - в этом случае это событие, вероятно, не сработает.К сожалению, у меня пока нет надежного решения этой проблемы.

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