猿问

WPF中的StringFormat本地化问题

在WPF 3.5SP1中,我在DataBindings中使用了最后一个功能StringFormat:


     <TextBlock Text="{Binding Path=Model.SelectedNoteBook.OriginalDate, StringFormat='f'}"

                FontSize="20" TextTrimming="CharacterEllipsis" />

我面临的问题是,日期始终以英语格式设置...尽管我的系统是法语格式?如何强制日期跟随系统日期?


RISEBY
浏览 754回答 3
3回答

慕尼黑5688855

// Ensure the current culture passed into bindings is the OS culture.// By default, WPF uses en-US as the culture, regardless of the system settings.FrameworkElement.LanguageProperty.OverrideMetadata(&nbsp; &nbsp; &nbsp; typeof(FrameworkElement),&nbsp; &nbsp; &nbsp; new FrameworkPropertyMetadata(&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag)));从在WPF中创建国际化向导

PIPIONE

定义以下xml名称空间:xmlns:gl="clr-namespace:System.Globalization;assembly=mscorlib"现在看看这个奇妙的修复:<TextBlock Text="{Binding Path=Model.SelectedNoteBook.OriginalDate, StringFormat='f', ConverterCulture={x:Static gl:CultureInfo.CurrentCulture}" FontSize="20"TextTrimming="CharacterEllipsis" />我很清楚这不是一个全局修补程序,您将在每个Bindings上都需要它,但是可以肯定的是,这只是很好的XAML?据我所知,下次绑定更新时,它将使用正确的CultureInfo.CurrentCulture或您提供的内容。该解决方案将立即使用正确的值更新您的Bindings,但是对于如此少见又无害的东西,似乎有很多代码。
随时随地看视频慕课网APP
我要回答