| 

.NET C# Java Javascript Exception

4
Ich habe in einem Dialog eine TextBox, die an ein Datum im Data-Context des Fensters gebunden ist. Das Datum wird allerdings immer im US-Format ausgegeben (mMM/dd/yyyy):

<TextBox Text="{Binding Path=DateOfBirth, UpdateSourceTrigger=PropertyChanged, StringFormat=d, ValidatesOnExceptions=True}"/>


Ich kann zusätzlich explizit ConverterCulture=de-DE angeben, allerdings habe ich nun ein ernstes Problem: ConverterCulture ist keine DependancyProperty, so dass ich die Zeichenfolge "de-DE" nicht lokalisieren kann, noch nicht mal über eine Ressource, die CultureInfo.CurrentCulture verwendet. Lasse ich ConverterCulture weg, wird unabhängig von der Kultur, die das Programm verwendet oder die im Betriebssystem eingestellt ist, immer "en-US" (Invariant) verwendet.

Wie lokalisiere ich den Konverter in XAML? Wenn es hier keine Möglichkeit gibt, ist die Datenbindung in XAML praktisch unbrauchbar für Programme, die international sind.

PS: Die Variante eines eigenen Converters in C# ist mir bekannt, aber m.E. keine akzeptable Lösung, weil es wieder zusätzlcihe Programmierung bedeutet und die XMAL-Datei dann nicht unabhängig von meinem Code ist.
14.05.2011
Gast
41 1 2
So ein M*x-Grrrx@! Diese Frage kommt von mir. Kann man sie irgendwie auf mein Mitgliedskonto umleiten?

Das ist ja echt gefährlich. Ich finde, es sollte wenigstens ein Hinweis erscheinen, dass man nicht angemeldet ist, bevor die Frage tatsächlich losgeschickt wird.
Andreas Ganzer 14.05.2011
6
Nach einigem Probieren und einem Tipp aus dem MSDN Network habe ich endlich eine Lösung gefunden:

ConverterCulture={x:Static sg:CultureInfo.CurrentCulture}

"sg" ist der für System.Globalization eingerichtete XML-Namespace

Die ganze Bindung:

<TextBox Text="{Binding Path=DateOfBirth, UpdateSourceTrigger=PropertyChanged, StringFormat=d, ConverterCulture={x:Static sg:CultureInfo.CurrentCulture}, ValidatesOnExceptions=True}"/>

Damit hat sich die Frage eigentlich erledigt.
Andreas Ganzer 14.05.2011