У меня есть расширенный элемент управления Calendar, связанный с классом, содержащим значения даты и состояния. Идея состоит в том, чтобы различать национальные праздники, государственные праздники и личные выходные. Я отображаю их в разных цветах, используя конвертер, который проверяет текущую дату по списку объектов, связанных с элементом управления календаря, чтобы выбрать цвет заливки для элемента в CalendarDay. Это все работает отлично.
Проблема заключается в том, что я хочу поддержать то, что когда пользователь нажимает на день (в заданном режиме), он может выбрать или отменить выбор этой даты как выходного / выходного дня. используя PreviewMouseDown, я выбираю объект по выбранному контексту данных (datetime) и обновляю его состояние. Это работает нормально, однако я не могу заставить элемент управления календаря выполнить обновление.
Календарь не привязан к моему пользовательскому классу, я не уверен точно, как привязан CalendarDay, но, похоже, он просто имеет контекст данных, указывающий на значение DateTime. Итак, NotifyPropertyChanged отсутствует. Если я нажимаю на дату и переключаю месяцы, а обратно, кажется, что день выделен, как и ожидалось, мне нужно, чтобы календарь перекрасился. Я искал примеры принудительного перекрашивания, и пока ничего не получалось.
Я пробовал UpdateLayout () среди прочего. Я не знаю, если это проблема, потому что я пытаюсь сделать рендеринг из события мыши. Любые идеи, как перекрасить элемент управления календаря, чтобы можно было запустить конвертер?