文化中的WPF自定义DateTimeFormat定义

时间:2011-01-02 22:20:50

标签: wpf datetime format culture

我的WPF应用程序中的DateTime字符串格式出现问题。我实现了我在此处找到的国际化修复http://www.nbdtech.com/Free/WpfBinding.pdf以及几个不同的StackOverflow问题。

这适用于特定于文化/区域设置的DateTime字符串格式。但是,当我对文化中的datetimeformat进行自定义更改时,如下所示:

CultureInfo ci = new CultureInfo("en-US");
ci.DateTimeFormat.DateSeparator = ".";

在某些控件中完全忽略了它,例如:DataGrid。而在其他如RichTextBox和DatePicker中,它可以正常工作。这是我在App.xaml.cs中的OnStartup方法:

protected override void OnStartup(StartupEventArgs e)
    {
        // Set CultureInfo
        CultureInfo ci = new CultureInfo("en-US");

        ci.DateTimeFormat.DateSeparator = ".";

        Thread.CurrentThread.CurrentCulture = ci;
        Thread.CurrentThread.CurrentUICulture = ci;

        FrameworkElement.LanguageProperty.OverrideMetadata(
            typeof(FrameworkElement),
            new FrameworkPropertyMetadata(
                XmlLanguage.GetLanguage(
                CultureInfo.CurrentCulture.IetfLanguageTag)));
        base.OnStartup(e);
    }

有什么想法吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

Yikes看起来像一个非常讨厌的解决方法。我会害怕它可能产生的其他副作用,特别是在处理日期和时间控制时。为什么不使用value converter