Измените все свои DynamicResource
на StaticResource
. Это не должно останавливать его работу, но может быть неэффективным во время выполнения. Посмотрите эту страницу для обзора ресурсов WPF.
Также ваш ItemsControl
не связан с DayNumbers
. Добавьте привязку так:
<ItemsControl x:Name="DaysPanel" Grid.ColumnSpan="7" Grid.Row="2"
ItemTemplate="{StaticResource PanelOfPanels}"
ItemsSource={Binding DayNumbers}/>
Когда вы устанавливаете DataContext
в окне календаря, вы устанавливаете, какой объект будет источником привязки по умолчанию для всего окна. Вы не указали, какое свойство вашей ViewModel связано с ItemsControl
. Это то, что делает код выше.
РЕДАКТИРОВАТЬ Поскольку вы переопределяете шаблон элемента для ItemsControl
и предоставляете там контейнер для сбора, вам также необходимо предоставить ItemsSource
для него. Синтаксис {Binding}
просто означает привязку к каждому члену или перечислению , в данном случае ObservableCollection<int>
.
Просто повторюсь, шаблон именно такой - шаблон для отображения данных. Он должен быть многоразовым, вы должны иметь возможность привязать его к любой модели, которую вы хотите. Практическое правило: привязка данных к фактическим данным должна происходить в элементе управления, а не в шаблоне.