Hallo Leute,
habe ein Datagrid, in welchem double-Werte angezeigt und auch bearbeitet werden.
Die Darstellung mit Dezimal-Komma kann man mittels
Binding="{Binding Path=Preis, ConverterCulture='de-DE', StringFormat='0.00€'}"
erreichen. Da man dazu aber alle Felder entsprechend fest einstellen muss habe ich im
Konstruktor der App
FrameworkElement.LanguageProperty.OverrideMetadata(typeof(FrameworkElement), new FrameworkPropertyMetadata(XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag)));
eingetragen, Damit erscheinen alle Double-Werte in der Anwendung mit Komma statt mit Punkt.
So weit, so gut. Wenn ich jetzt aber mit
var _Result = double.TryParse(_updateElement.Text, NumberStyles.AllowDecimalPoint, CultureInfo.CurrentCulture, out _Betrag);
einen Wert zwischen 0 und 1 (_updateElement.Text ist beispielsweise "0,99") umwandeln will, ist _Result=false und _Betrag dann natürlich 0.
Werte ≥ 1 lassen sich problemlos casten.
Mit
var _Result = double.TryParse(_updateElement.Text, NumberStyles.AllowDecimalPoint, CultureInfo.CreateSpecificCulture("de-DE"), out _Betrag);
funktioniert es dann auch für den angegebenen Wertebereich nur habe ich hier wieder die expliziete Angabe von ("de-DE") die ich ja vermeiden wollte.
Hat jemand einen Tipp, wie man das besser hinbekommt?
Danke und Gruß
Danke und Gruß Isolde B.
Was ist CurrentCulture in deinem Aufruf? Es kann nur daran liegen dass hier was falsches drin steht.
Hallo,
stell beim Anwendungsstart einfach dein CurrentCulture um...dann ist dein Problem gelöst. Die ist standardmäßig nicht de-de.
Wenn's zum weinen nicht reicht, lach drüber!