所以我前一段时间编写了这段代码并且以前工作正常,但最近无论出于什么原因它现在根本不起作用。这是xaml ......
<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>
此代码执行相同的操作,每当您尝试从日历中选择日期时,都不会发生任何事情。这曾经发挥作用,据我所知,一切都没有改变,任何人都对正在发生的事情有任何见解,或者更好地实现我想要做的事情?
答案 0 :(得分:3)
我明白了。无论出于何种原因,这一部分对于这一切都很重要......
<CalendarItem x:Name="PART_CalendarItem"... />
我不太清楚为什么,但我确实记得在某些时候删除它认为它没有做任何事情,但如果没有那行,所选的日期永远不会填充文本框或支持属性。