18

这很好用:

<my:DatePicker IsTodayHighlighted="True" Width="200">
</my:DatePicker> 

但我想格式化日期,如下所示:

<my:DatePicker IsTodayHighlighted="True" Width="200" Format="yyyy-mm-dd">
</my:DatePicker> 

有人知道这个的语法吗?

4

5 回答 5

28

不幸的是,DatePicker 控件目前不支持免费的 DateTime 格式。

如果您有兴趣在 DatePicker 的未来版本中获得支持,请创建一个建议的 codeplex 功能请求。 http://silverlight.codeplex.com/WorkItem/Create.aspx

只是指出,新的 Silverlight Toolkit 2009 年 3 月 TimePicker 和 TimeUpDown 控件确实支持全方位的全球化选项。其中之一包括免费的 DateTime 格式。因此,我们是否将该功能移植回 DatePicker 只是一个公共利益问题。看看 TimePicker @ http://silverlight.codeplex.com/Wiki/View.aspx?title=Silverlight%20Toolkit%20Overview%20Part%201#TimePicker的格式

同时,最好的解决办法是要么改变当地文化,要么改变当地文化的格式。

    public App()
    {
        Thread.CurrentThread.CurrentCulture = new CultureInfo("nl-NL");

或者改变当地文化的格式。

        public App()
    {
        Thread.CurrentThread.CurrentCulture = (CultureInfo) Thread.CurrentThread.CurrentCulture.Clone();
        Thread.CurrentThread.CurrentCulture.DateTimeFormat.ShortDatePattern = "D/m/yyyy";
于 2009-03-23T22:27:19.073 回答
1

您应该定义一个自定义控件模板并编辑 datepicker 控件的文本框以设置文本格式。

于 2009-10-12T16:37:29.450 回答
0

Silverlight DatePicker 上有一个 SelectedDateFormat 属性,这可能是您正在寻找的。

于 2009-02-23T18:53:09.840 回答
0

您可以隐藏控件文本框(宽度较小),公开您自己的(可选地将 IsEnabled 设置为 false)并使用元素绑定和转换器。如果您使用的是 MVVM,则将 DataContext 设置为您的 ViewModel。我想另一种选择是覆盖 DataTemplate 以不包含文本框并执行相同的想法。

<StackPanel Orientation="Horizontal" Height="22">
      <TextBox x:Name="textBox2" Width="106" Text="{Binding ElementName=datePicker2, Path=SelectedDate, Mode=TwoWay, Converter={StaticResource internationalDateTimeFormatConverter}}" />
      <controls:DatePicker x:Name="datePicker2" IsTabStop="False" SelectedDate="{Binding TargetDatePicker, Mode=TwoWay, NotifyOnValidationError=true, ValidatesOnExceptions=true}" Width="23" HorizontalAlignment="Left" />
</StackPanel>

更新:从文本框到日期选择器的 TwoWay 绑定运行良好,但它不会更新 ViewModel 属性。所以我要设置 IsEnabled=False 并称之为好。

于 2010-05-13T14:14:14.213 回答
0

我注意到这是一个已回答的问题。

但是我想通知这个链接到我最近开始创建的 Silverlight 5 控制工具包。它包含(以及其他控件)一个 DateTimeBox 控件,您可以在其中处理同一控件中的日期和时间。在这一点上,它仍在开发中,但它应该适用于大多数场景。

于 2013-02-04T12:05:17.817 回答