Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > WPF и Silverlight > При вводе значения идет разбивка числа на разряды,


Автор: Modis 10.2.2012, 12:06
Всем привет. Использую тут StringFormat для отображения числа как "денежку".
Код XML
Код

<DataGridTextColumn Binding="{Binding Path=Income, Mode=TwoWay, 
                    UpdateSourceTrigger=PropertyChanged,
                    StringFormat={}{0:c},
                    ConverterCulture=ru-RU}"
                                    Header="Приход">
                    <DataGridTextColumn.EditingElementStyle>
                        <Style TargetType="{x:Type TextBox}">
                            <EventSetter Event="TextChanged" Handler="Textbox_Num_TextChanged"></EventSetter>
                            <EventSetter Event="PreviewTextInput" Handler="MainWindow_PreviewTextInput"></EventSetter>                            
                        </Style>
                    </DataGridTextColumn.EditingElementStyle>
                </DataGridTextColumn>

Десятки, тысячи и т.д. разделяются пробелом.
Все отображается хорошо, однако при вводе нового значения вручную (с клавиатуры) возникает одна проблема - пока вводишь число, каретка все время остается на месте, а вот число смещается за счет добавления пробелов. Если я буду вводить число 123456789, то в результате получу 123 568 974,00р.  Может кто знает как лечить?
З.Ы. На всякий случай (если плохо объяснил) прикладываю видео
З.Ы.Ы. Может тогда кто-нибудь подскажет вариант "обхода"? Например, чтобы когда редактируешь StringFormat "не работал", а когда редактирование заканчиваешь - "работал"

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)