我的 silverlight 应用程序的数据网格中有一个日期列。我需要以 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 始终采用我的操作系统区域设置中指定的数据时间格式。 有什么指点吗?
最佳答案
在绑定(bind)本身上定义所需的格式不是更好吗?像这样的东西:-
<sdk:DataGridTextColumn Header="SomeDate" Binding="{Binding SomeDate, StringFormat={}{0:MM/dd/yyyy HH:mm:ss}}" />
您的代码不起作用的原因是 Xaml 加载的控件使用的 CultureInfo
是由加载 Xaml 的控件的 Language
属性定义的。我认为在这种情况下没有办法提供自定义 CultureInfo
。
关于Silverlight UI 文化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7849964/