2013-09-24 5 views
8

Non capisco quale potrebbe essere il problema. Il bind è su una proprietà decimale. Ecco lo XAML:L'associazione WPF DataGridTextColumn non accetta i decimali

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

Non riesco letteralmente a digitare "." carattere. Perché dovrebbe impedirmi di scrivere quel personaggio e come faccio a dirlo per consentirmi di farlo.

ho provato a fare un formato stringa come questa:

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

Ma questo non risolve il problema, perché tutto ciò che fa è accodare" .00" alla fine di qualsiasi tipo I.

Tutto ciò di cui ho bisogno è il permesso di digitare il periodo.

UPDATE:

mi è stato diretto here. Ho rimosso la proprietà UpdateSourceTrigger e questo mi ha permesso di digitare un '.'. Non ho 4.5 Beta installato e le mie impostazioni di localizzazione sono corrette. Così ora la mia domanda è come ottengo il DataGridTextColumn per permettermi di digitare '.' con un set di proprietà UpdateSourceTrigger?

+2

http://stackoverflow.com/questions/9805539/datagridtextcolumn-doesnt-allow-to-enter-double-value –

risposta

14

UpdateSourceTrigger = PropertyChanged reevalutes il testo su ogni tasto. Un numero che termina con un punto decimale non è valido. Cambia UpdateSourceTrigger in LostFocus (come rimuoverlo) o prova a digitare "." mentre hai altre cifre dopo di esso.