У меня были проблемы со строковым форматом DateTime в моем приложении WPF. Я реализовал Исправление интернационализации , которое нашел здесь: http://www.nbdtech.com/Free/WpfBinding.pdf, а также в нескольких различных вопросах StackOverflow.
Это прекрасно работает для строковых форматов DateTime, специфичных для культуры / региона. Однако, когда я делаю пользовательские изменения в формате datetime в культуре, например:
CultureInfo ci = new CultureInfo("en-US");
ci.DateTimeFormat.DateSeparator = ".";
Это полностью игнорируется в некоторых элементах управления, например: DataGrid. В то время как в других, таких как RichTextBox и DatePicker, он работает отлично. Вот мой метод OnStartup в App.xaml.cs:
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);
}
Есть идеи?
Спасибо!