2016-03-04 85 views
1

我想为全球化目的设置CalendarDatePicker的日期格式。我尝试这样做:uwp CalendarDatePicker设置日期格式

endDate = (FindName("cdpEnd") as CalendarDatePicker); 
endDate.DateFormat = CultureInfo.CurrentCulture.DateTimeFormat.ShortDatePattern; 
endDate.Date = workObject.EndCal; 

但它给了我以下异常:

System.ArgumentException: The parameter is incorrect. 

formatTemplate 
    at Windows.UI.Xaml.Controls.CalendarDatePicker.put_DateFormat(String value) 
    at App1.PageWorkObject.rootGrid_Loaded(Object sender, RoutedEventArgs e) 

我检查我已经设定的值,它看起来正常的对我说:"M/d/yyyy"

我在做什么错?

回答

2

当您使用CalendarDatePicker时,TextBox部分的字符串内容由DateTimeFormatter创建。

"M/d/yyyy"似乎是正常的,但

要点不能任意组合组件和必然获得一个有效的模板。唯一有效的模板是由所提供的语法定义的模板。

如果你读指DateTimeFormatter类,你会发现有一个像"M/d/yyyy"没有格式,对于喜欢"M/d/yyyy"相同的格式,我想应该是这样的:

endDate.DateFormat = "{month.integer}‎/‎{day.integer}‎/‎{year.full}"; 
+0

有什么办法为所有全球化解决这个问题?即欧洲? –

+0

@RobinDijkhof,我认为这样做的方式可以是使用数据绑定来绑定'CalendarDatePicker'的'DateFormat'属性,然后根据区域选择不同的格式。 –