2013-09-24 12 views
8

Ich verstehe nicht, was das Problem sein könnte. Die Bindung befindet sich in einer Decimal-Eigenschaft. Hier ist die XAML:WPF DataGridTextColumn Bindung akzeptiert keine Dezimalstellen

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

Ich kann buchstäblich nicht das '.' Charakter. Warum sollte es mich davon abhalten, diesen Charakter einzugeben und wie sage ich es mir, damit ich es tun kann?

Ich habe versucht, einen String-Format wie dies zu tun:

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

Aber das ist mein Problem nicht zu lösen, weil alle es ist „.00" von was auch immer an das Ende I-Typ tut anhängen.

Alles, was ich brauche, ist die Erlaubnis, den Zeitraum einzugeben.

UPDATE:

Ich war here gerichtet. Ich habe die UpdateSourceTrigger-Eigenschaft entfernt, sodass ich ein '.' Eingeben konnte. Ich habe 4.5 Beta nicht installiert und meine Lokalisierungseinstellungen sind korrekt. Nun, meine Frage ist, wie bekomme ich die DataGridTextColumn, um mir zu erlauben, '.' mit einer UpdateSourceTrigger-Eigenschaft?

+2

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

Antwort

14

UpdateSourceTrigger = PropertyChanged reevaluiert den Text bei jedem Tastendruck. Eine Zahl, die mit einem Dezimalpunkt endet, ist ungültig. Ändern Sie den UpdateSourceTrigger zu LostFocus (genau wie das Entfernen) oder versuchen Sie, das '.' während Sie andere Ziffern haben.