/ / Irytujące automatyczne formatowanie występujące w bazie danych TextFox WPF do właściwości Double - wpf, c # -4.0, wiążące dane

Irytujące automatyczne formatowanie występujące w bazie danych TextFox WPF do właściwości Double - wpf, c # -4.0, wiążące dane

Mam TextBox, który doprowadza mnie do szaleństwa ze względu na sposób automatycznego formatowania podczas wprowadzania liczb.

Na przykład chcę wprowadzić -0.00004, ale w trakcie pisania TextBox usuwa znak ujemny, gdy tylko wpiszesz pierwszy 0.

Następnie wypróbowałem -00004, który nie usuwa negatywnego znaku podczas pisania ., ale zaraz po naciśnięciu 0 usuwa - i ..

Jedynym sposobem, w jaki udało mi się zachować zachowanie TextBoxa, jest wejście 0.00004 po pierwsze, które następnie autoformatuje 4E-05, a następnie dodaj znak ujemny z przodu. Albo mogę wejść -4E-5, które następnie autoformatuje do -4E-05, co jest w porządku, ale jeśli wejdę -4E-05 temu E Pobiera spadła tak szybko, jak I naciśnij 0.

Co mam nadzieję, jest sposób, aby wyłączyć to zachowanie z wbudowanych właściwości pewnego rodzaju, ale jeśli on nie istnieje, pisanie IValueConverter może być moją jedyną opcją.

Odpowiedzi:

1 dla odpowiedzi № 1

Jednym ze sposobów obejść auto formatowanie jest użycie IValueConverter na podwójne właściwości powiązania. Trzeba będzie dodać logikę do Convert Metoda konwersji z double do string i ConvertBack Metoda konwersji z string do double. Tutaj "s Artykuł MSDN z przykładem.

<TextBox Text="{Binding Number, Converter={StaticResource NumToStrConverter}}"/>

Innym sposobem byłoby ustawić StringFormat w wiązaniu liczbę z liczbą miejsc dziesiętnych do pokazania.Spójrz tutaj w przypadku innych formatów.

<TextBox Text={Binding Number, StringFormat=N10}"/>