2010-12-06 24 views
1

我注意到WPF Toolkit日曆控件存在嚴重問題。從DataTemplate調用的WPF Toolkit日曆問題

<toolkit:Calendar DisplayDate="12/6/2010"/> 

但是,它從來沒有榮譽的DisplayDate參數,當我使用一個DataTemplate造成日曆顯示:如果我只是正常的內聯XAML調用它和DisplayDate設置爲一個日期字符串,這樣它工作正常。這裏有一個例子:

<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上做錯了什麼?

+0

注意到stackoverflow管理員:我的帖子包括在我的第二個代碼塊的底部,但stackoverflow網站不呈現結束標記。 – HugeHugh 2010-12-06 18:07:46

+0

你使用的是WPF4嗎? – Guy 2010-12-06 18:10:14

回答

0

似乎與日曆control.It加載event.Any方式Loaded事件重置前重置某處在一個DataTemplate中控逆變的DisplayDate的錯誤似乎做trick.Try這

private void Calendar_Loaded(object sender, RoutedEventArgs e) 

    { 

     ((Calendar)sender).DisplayDate = (DateTime) ((Calendar)sender).DataContext; 

    }