WPF DataGridTextColumn binding doesn't accept decimals
Asked Answered
M

1

10

I don't understand what the problem could be. The binding is on a Decimal property. Here is the XAML:

<DataGridTextColumn Header="Price" Binding="{Binding Price, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged} Width="*"/>

I literally cannot type the '.' character. Why would it stop me from typing that character and how do I tell it to let me do so.

I tried doing a string format like this:

<DataGridTextColumn Header="Price" Binding="{Binding Price, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, StringFormat={}{0:n2}} Width="*"/>

But this doesn't solve my problem because all it does is append ".00" to the end of whatever I type.

All I need is permission to type the period.

UPDATE:

I was directed here. I removed the UpdateSourceTrigger property and this made it possible for me to type a '.'. I do not have 4.5 Beta installed and my localization settings are correct. So now my question is how do I get the DataGridTextColumn to allow me to type '.' with an UpdateSourceTrigger property set?

Mccaleb answered 24/9, 2013 at 15:22 Comment(1)
#9806039Retinue
F
20

UpdateSourceTrigger=PropertyChanged reevalutes the text on every keystroke. A number that ends in a decimal point is invalid. Change the UpdateSourceTrigger to LostFocus (same as removing it) or try to type the '.' while you have other digits after it.

Firstfoot answered 24/9, 2013 at 15:40 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.