Silverlight UI文化

时间:2011-10-21 13:18:47

标签: silverlight datagrid silverlight-4.0

我的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总是会在我的操作系统上选择我的区域设置中指定的数据时间格式。 有什么指针吗?

2 个答案:

答案 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