So aktivieren Sie die Eingabe von beiden und. dann formatieren Sie es zu. für DataGridColumn in allen Kulturen?

8

Ich muss sowohl , als auch . in der editierbaren DataGridColumn unabhängig von der Kultur akzeptieren. Wenn der Wert eingegeben wird, wird formatiert, um . als Dezimaltrennzeichen zu verwenden.

Momentan benutze ich nur:

%Vor%

gebundene Eigenschaft Die Größe in ViewModel ist vom Typ double.

Wenn der Benutzer also 100,3 eingibt, sollte er in der gebundenen Eigenschaft als 100,3 aktualisiert werden. Er kann auch 2.0 eingeben, was 2.0 sein sollte. Wenn der Benutzer 100,3 eingibt, wird er in der Spalte als 100,3 aktualisiert, wenn der Fokus das Feld verlässt.

    
char m 03.01.2017, 20:24
quelle

3 Antworten

0

Sie erleben die Grenzen, wenn Sie ein double (oder int) an ein TextBox binden (das im Bearbeitungsmodus von DataGridTextColumn erzeugt wird): Sie haben nur begrenzten Einfluss auf die Vorwärts- und Rückwärtskonvertierung von und in eine Zeichenkette . Eine Lösung, um mehr Kontrolle zu erhalten, ist die Einführung einer neuen Eigenschaft vom Typ string, die Ihr Double als String in einem gewünschten Format darstellt. Sie binden diese neue Eigenschaft in XAML und machen den Rest der Magie (Vorwärts-, Rückwärtskonvertierung) in Ihrem Viewmodel. Beide Eigenschaften aktualisieren sich bei Änderung. Mit anderen Worten: Der String für das XAML, das Double für das Modell und das View-Modell verbinden beide:

XAML:

%Vor%

Viewmodel:

%Vor%     
gomi42 06.01.2017 09:37
quelle
0

Dies sollte mit allen Kulturen funktionieren. Weit davon entfernt, perfekt zu sein, aber minimale Anforderungen erfüllt.

Also meine "Validierung" besteht nur darin, den falschen Wert (wie 3.0h oder ere) in 1.0

zu ändern

xaml:

%Vor%

-Konverter:

%Vor%

-Eigenschaft in ViewModel ist immer noch doppelt. Keine zusätzliche Zeichenfolgeneigenschaft erforderlich.

    
char m 06.01.2017 15:28
quelle
0

Bitte benutzen Sie den folgenden Code, das funktioniert:

%Vor%

xaml:

%Vor%     
mohsen mousavi 07.01.2017 23:00
quelle

Tags und Links