【发布时间】: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