我的silverlight App中的数据网格中有一个日期列。我需要时间以24小时格式显示。为了实现这一点,我在Application_Startup事件中修改了UI文化,如下所示:
CultureInfo cinf = Thread.CurrentThread.CurrentUICulture.Clone() as CultureInfo;
DateTimeFormatInfo f = cinf.DateTimeFormat.Clone() as DateTimeFormatInfo;
System.Globalization.DateTimeFormatInfo df = new System.Globalization.DateTimeFormatInfo();
string format = "MM/dd/yyyy HH:mm:ss";
f.FullDateTimePattern = format;
cinf.DateTimeFormat = f;
Thread.CurrentThread.CurrentUICulture = cinf;
但是UI总是会在我的操作系统上选择我的区域设置中指定的数据时间格式。 有什么指针吗?
答案 0 :(得分:0)
尝试设置CurrentCulture
,即:
Thread.CurrentThread.CurrentCulture = cinf;
答案 1 :(得分:0)
在绑定本身上定义所需的格式不是更好吗?类似的东西: -
<sdk:DataGridTextColumn Header="SomeDate" Binding="{Binding SomeDate, StringFormat={}{0:MM/dd/yyyy HH:mm:ss}}" />
您的代码无效的原因是Xaml加载的控件使用的CultureInfo
由加载Xaml的控件的Language
属性定义。我不认为在这种情况下有办法提供自定义CultureInfo
。