У меня есть приложение WPF с DataGrid, связанным с ObservableCollection. Тип коллекции - это класс, который содержит одно или несколько свойств типа double для десятичных значений. В XAML я определил DataGrid-столбцы, как, что:Заменить запятую точкой во время ввода в WPF DataGrid
<DataGrid.Columns>
<DataGridTextColumn x:Name="col_LowerBound"
Binding="{Binding LowerBound, NotifyOnTargetUpdated=True, Mode=TwoWay, UpdateSourceTrigger=LostFocus}"
Header="Lower bound"/>
</DataGrid.Columns>
Как Вы можете видеть, я использую UpdateSourceTrigger LostFocus вместо PropertyChanged. В случае PropertyChanged вход проверяется сразу и символ типа "." приведет к неправдоподобности. Используя LostFocus, я могу ввести десятичные знаки с точкой.
Теперь я хочу ввести запятую и заменить ее точкой. Могу ли я сделать эту замену во время события KeyDown- или PreviewKeyDown и как? Я не знаю, как сделать замену значений, в то время как KeyDown и аналогичный случай with TextBox не очень помогают.
Возможный дубликат [Можете ли вы заменить символы в текстовом поле при вводе?] (Http://stackoverflow.com/questions/18971198/can-you-replace-characters-in-a-textbox-as-you- тип). У вас действительно есть правильная идея, этот вопрос и его ответы должны дать вам все понимание, которое вам нужно для этого. – Kilazur
Здравствуйте, Килазур. Спасибо за подсказку, но, к сожалению, TextBox не совпадает с DataGrid и его ячейками. Тем временем я нашел лучшее решение, используя конвертер, который вы можете посмотреть ниже. –
Вы заметите, что один из ответов говорит об использовании конвертера: p – Kilazur