我在输出DateTime值时遇到了一些麻烦。我的电脑目前的文化设置为de-AT(奥地利)。WPF XAML StringFormat DateTime:输出错误的文化?
以下代码
string s1 = DateTime.Now.ToString("d");
string s2 = string.Format("{0:d}", DateTime.Now);
结果S1和S2两者都具有 “30.06.2009” 的正确的值。
但在XAML
<TextBlock Text="{Binding Source={x:Static sys:DateTime.Now}, StringFormat=d}"/>
使用相同格式时的输出是' “6/30/2009”。看来XAML StringFormat忽略了当前的文化设置。这发生在Vista和XP上。
我不想指定自定义格式,因为输出应该在用户的首选文化设置中格式化。
任何人都有同样的问题?这是WPF中的错误吗?
我发誓整天都在,我发现这个问题最后一分钟! – GorillaApe 2010-10-12 06:20:03
它被认为是“通过设计”。请参阅https://connect.microsoft.com/VisualStudio/feedback/details/442569/wpf-binding-uses-the-wrong-currentculture-by-default – 2010-12-01 09:21:31