Sólo quería añadir que loraderon 's respuesta funciona muy bien en la mayoría de los casos. Cuando coloco la siguiente línea de código en mi App.xaml.cs, las fechas en mis TextBlocks están formateadas en la cultura correcta.
FrameworkElement.LanguageProperty.OverrideMetadata(typeof(FrameworkElement), new FrameworkPropertyMetadata(System.Windows.Markup.XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag)));
digo 'más cases'.For ejemplo, esto va a funcionar fuera de la caja:
<TextBlock Text="{Binding Path=Date, StringFormat={}{0:d MMMM yyyy}}" />
--> "16 mei 2013" (this is in Dutch)
... pero cuando se utiliza en una fuga de TextBlock, el DateTime tienen el formato por defecto cultura.
<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")
Para que esto funcione, que necesitaba respuesta Gusdor 's, es decir, añadiendo ConverterCulture = {x: gl estática: CultureInfo.CurrentCulture} para la unión.
<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)
Espero que esta respuesta adicional sea útil para alguien.
3 años ¡Una pregunta mejor evaluada pero no tiene respuestas! Caras tristes todo el año. – Gusdor