3

我目前有一个默认为 MM-dd-yyyy 的美国日期表示法的 Windows.UI.Xaml.Controls.DatePicker。我想将其更改为 dd-MM-yyyy,但我找不到如何使用这个特定的 DatePicker。我在这里看到了使用 DatePicker 的问题和答案,但不幸的是它不是同一个 DatePicker。

我的xml:

<DatePicker Date="{Binding someDate, Converter="{StaticResource DateTimeToDateConverter}", Mode=TwoWay}"/>

转换器:

public override object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo language)
{
  DateTime date = (DateTime)value;
  return date;
}

我尝试将语言参数添加到 DatePicker,但它根本不受影响......我还将系统设置语言从 en-US 更改为 nl-NL,这也不起作用。有谁知道我应该怎么做才能将 DatePicker 格式设置为 dd-MM-yyyy?

编辑:日期来自转换器的正确格式,但实际的可视 XAML 对象是 MM-dd-yyyy。

4

2 回答 2

4

您是否尝试过: return date.ToString("dd-MM-yyyy); 而不仅仅是 return date; ?

编辑:你想要它反转 DatePicker 的日期和月份的列。为此,您必须修改控件的模板。右键单击您的 DatePicker,编辑模板,编辑副本。然后只需反转生成的模板中的 DayTextBlock 和 MonthTextBlock。

于 2015-12-16T13:11:14.053 回答
0

使用此代码设置所需的日期时间格式。

<Style TargetType="{x:Type DatePickerTextBox}">
 <Setter Property="Control.Template">
  <Setter.Value>
   <ControlTemplate>
    <TextBox x:Name="PART_TextBox"
     Text="{Binding Path=SelectedDate, StringFormat='dd MMM yyyy', 
     RelativeSource={RelativeSource AncestorType={x:Type DatePicker}}}" />
   </ControlTemplate>
  </Setter.Value>
 </Setter>
</Style>
于 2015-12-16T13:12:32.510 回答