2016-03-04 36 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'屬性,然後根據區域選擇不同的格式。 –