Saya hanya ingin menambahkan bahwa jawaban loraderon bekerja dengan baik dalam banyak kasus. Ketika saya meletakkan baris kode berikut di App.xaml.cs saya, tanggal di TextBlocks saya diformat dalam budaya yang benar.
FrameworkElement.LanguageProperty.OverrideMetadata(typeof(FrameworkElement), new FrameworkPropertyMetadata(System.Windows.Markup.XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag)));
Saya mengatakan 'kebanyakan kasus'. Misalnya, ini akan berhasil di luar kotak:
<TextBlock Text="{Binding Path=Date, StringFormat={}{0:d MMMM yyyy}}" />
--> "16 mei 2013" (this is in Dutch)
... tetapi saat menggunakan Run di TextBlock, DateTime diformat dalam budaya default.
<TextBlock>
<Run Text="Datum: " />
<Run Text="{Binding Path=Date, StringFormat={}{0:d MMMM yyyy}, Mode=OneWay}" />
</TextBlock>
--> "Datum: 16 may 2013" (this is in English, notice the
name of the month "may" vs. "mei")
Agar ini berhasil, saya membutuhkan jawaban Gusdor , yaitu menambahkan ConverterCulture = {x: Static gl: CultureInfo.CurrentCulture} ke Binding.
<TextBlock>
<Run Text="Datum: " />
<Run Text="{Binding Path=Date, StringFormat={}{0:d MMMM yyyy}, ConverterCulture={x:Static gl:CultureInfo.CurrentCulture}, Mode=OneWay}" />
</TextBlock>
--> "Datum: 16 mei 2013" (=Dutch)
Saya berharap jawaban tambahan ini akan berguna bagi seseorang.