在XAML中显示来自DatetimeOffset的文化感知短日期和时间字符串

时间:2012-02-21 18:02:55

标签: wpf xaml datetime datetimeoffset

我有一个WPF4应用程序。

我将UI控件绑定到DateTimeOffSet值。 例如文本块

<TextBlock Text="{Binding Due.LocalDateTime,StringFormat='{}{0:dd MMM HH:mm}'}"/>

但我想要一种文化意识的价值展示。 因此,例如在德国,有24小时代表,在美国有AM / PM代表。

实现这一目标的最佳/最聪明的方法是什么? 我需要一个covnerter吗?或者有没有办法在xaml中表示这个? 此外,日期字段的顺序也不同,等等......

1 个答案:

答案 0 :(得分:3)

这里有一些可疑的“按设计”行为的解决方法:

http://connect.microsoft.com/VisualStudio/feedback/details/442569/wpf-binding-uses-the-wrong-currentculture-by-default

要准确复制用户在“区域设置”控制面板小程序中选择的自定义设置很难,但通过设置xml:lang属性,通用的区域设置特定设置非常简单。

例如,您可以在顶级窗口元素中添加类似这样的内容,例如:

Language="{Binding Source={x:Static Globalization:CultureInfo.CurrentCulture}, Path=IetfLanguageTag,Mode=OneTime}"

同样,我必须强调,这并不完美,因为用户选择的任何自定义显示首选项都将被忽略。