Я заметил серьезную проблему с управлением календарем WPF Toolkit. Это прекрасно работает, если я просто вызываю его с обычным встроенным XAML и устанавливаю DisplayDate в строку даты, например:
<toolkit:Calendar DisplayDate="12/6/2010"/>
Однако он никогда не учитывает параметр DisplayDate, когда я использую DataTemplate для отображения календаря. Вот пример:
<UserControl x:Class="Dashboard.Presentation.View.CalendarView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:toolkit="http://schemas.microsoft.com/wpf/2008/toolkit"
xmlns:sys="clr-namespace:System;assembly=mscorlib">
<UserControl.Resources>
<DataTemplate DataType="{x:Type sys:DateTime}">
<StackPanel Orientation="Vertical">
<toolkit:Calendar DisplayDate="{Binding Path=.}" />
<TextBlock Text="{Binding Path=.}"/>
</StackPanel>
</DataTemplate>
</UserControl.Resources>
<ListBox>
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.Items>
<sys:DateTime>11/1/2010</sys:DateTime>
<sys:DateTime>12/1/2010</sys:DateTime>
<sys:DateTime>1/1/2011</sys:DateTime>
<sys:DateTime>2/1/2011</sys:DateTime>
<sys:DateTime>3/1/2011</sys:DateTime>
</ListBox.Items>
</ListBox>
Я добавил TextBlock в DataTemplate, чтобы вы могли видеть, что Дата привязана правильно, просто не учитывается Календарем.
Это ошибка в календаре WPF Toolkit? Если так, как я могу это исправить? Или я что-то не так делаю с DataTemplates?