【问题标题】:Problem with WPF Toolkit Calendar invoked from DataTemplate从 DataTemplate 调用的 WPF 工具包日历问题
【发布时间】:2011-01-27 01:43:44
【问题描述】:

我注意到 WPF Toolkit 日历控件存在严重问题。如果我只是使用普通的内联 XAML 调用它并将 DisplayDate 设置为日期字符串,它就可以正常工作,如下所示:

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

但是,当我使用 DataTemplate 来显示日历时,它从不支持 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>

我已在 DataTemplate 中添加了一个 TextBlock,因此您可以看到 Date 被正确绑定,只是 Calendar 不遵守它。

这是 WPF 工具包日历中的错误吗?如果是这样,我怎样才能解决这个问题?或者这是我在使用 DataTemplates 时做错了什么?

【问题讨论】:

  • stackoverflow 管理员注意事项:我的帖子在我的第二个代码块的底部包含 ,但 stackoverflow 网站不会呈现该结束标记。
  • 我应该提到我的版本。这是带有 WPF Toolkit 版本 v3.5.50211.1(又名 2010 年 2 月发布)的 .Net 框架 3.5。使用 .Net framework 4.0 不是此项目的选项。

标签: wpf calendar datatemplate toolkit


【解决方案1】:

似乎是日历控件的错误。它在加载事件之前的某处重置数据模板中的控件的 DisplayDate。在加载事件中重置它似乎可以解决问题。试试这个

private void Calendar_Loaded(object sender, RoutedEventArgs e)

  {

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

  }

【讨论】:

  • 感谢您确认这是一个错误。您的解决方法很简单,对我来说效果很好。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-10-24
  • 2011-03-30
  • 1970-01-01
  • 2010-11-09
  • 2011-07-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多