2012-05-04 29 views
3

所以我前一段時間編寫了這段代碼,它用於很好地工作,但最近出於任何原因現在它根本不起作用。這裏的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> 

此代碼做同樣的事情,只要你嘗試從日曆中選擇一個日期,沒有任何反應。這曾經工作,據我所知沒有任何變化,任何人有任何洞察事情正在發生,或者更好的執行我想做的事情?

回答

2

我想通了。無論出於何種原因,這部分是這一切功能的重要...

<CalendarItem x:Name="PART_CalendarItem"... /> 

我不太知道爲什麼,但我記得在某個時刻想着它沒有做任何事情刪除它,但是不所選日期行永遠不會填充文本框或支持屬性。