2012-05-04 4 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"... /> 

나는 이유를 확실히 모르겠지만, 나는 아무것도하지 않은 생각을 어떤 시점에서 그것을 제거 기억,하지만 ... 기능이 모두 중요하다 선 선택한 날짜는 절대로 텍스트 상자 또는지지 특성을 채 웁니다.