Итак, я написал этот код некоторое время назад, и он работал нормально, но недавно по какой-то причине теперь он не работает вообще. Вот XAML ...Переопределение стиля календаря в DatePicker
<DatePicker SelectedDate="{Binding Criteria}" IsEnabled="{Binding IsEnabled}" Width="130" HorizontalAlignment="Right">
<DatePicker.CommandBindings>
<CommandBinding Command="controls:DateCommands.SelectToday" CanExecute="CommandBinding_CanExecute" Executed="CommandBinding_Executed"/>
</DatePicker.CommandBindings>
<DatePicker.CalendarStyle>
<Style TargetType="{x:Type Calendar}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Calendar}">
<TabControl>
<TabItem Header="Calender">
<CalendarItem Background="{TemplateBinding Control.Background}" BorderBrush="{TemplateBinding Control.BorderBrush}" BorderThickness="{TemplateBinding Control.BorderThickness}" Style="{TemplateBinding Calendar.CalendarItemStyle}" />
</TabItem>
<TabItem Header="Relative Time">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Button Grid.Column="0" Command="controls:DateCommands.SelectToday" CommandParameter="Today" Content="Today" />
<Button Grid.Column="1" Command="controls:DateCommands.SelectToday" CommandParameter="Yesterday" Content="Yesterday" />
</Grid>
</TabItem>
</TabControl>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</DatePicker.CalendarStyle>
</DatePicker>
В основном я перекрывая календарь выбора даты и ввода в вкладок, что позволяет пользователю выбрать относительное время макросъемки, а не фактическое время (в результате чего генерируется запрос всегда используйте это относительное время). Это хорошо работает, но теперь, когда я пытаюсь выбрать из календаря, ничего не происходит, и никакие значения никогда не заселяются в поле или в свойстве резервного копирования.
Я взял код, и бросил его в новый проект, чтобы экспериментировать и не мог получить этот простой случай, чтобы даже работать ...
<DatePicker Width="130" HorizontalAlignment="Right">
<DatePicker.CalendarStyle>
<Style TargetType="{x:Type Calendar}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Calendar}">
<CalendarItem Background="{TemplateBinding Control.Background}" BorderBrush="{TemplateBinding Control.BorderBrush}" BorderThickness="{TemplateBinding Control.BorderThickness}" Style="{TemplateBinding Calendar.CalendarItemStyle}" />
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</DatePicker.CalendarStyle>
</DatePicker>
Этот код делает то же самое, когда вы пытаетесь выберите дату из календаря, ничего не произойдет. Раньше это работало, и, насколько мне известно, ничего не изменилось, у кого-нибудь есть представление о том, что происходит, или, возможно, лучше реализовать то, что я пытаюсь сделать?