ObservableCollectionにバインドされたDataGridを持つWPFアプリケーションがあります。 コレクション型は、10進値のdouble型のプロパティを1つ以上含むクラスです。 私はそのようなデータグリッド-列を定義しているXAMLの場合:WPF DataGridで入力中にカンマをドットに置き換えます。
<DataGrid.Columns>
<DataGridTextColumn x:Name="col_LowerBound"
Binding="{Binding LowerBound, NotifyOnTargetUpdated=True, Mode=TwoWay, UpdateSourceTrigger=LostFocus}"
Header="Lower bound"/>
</DataGrid.Columns>
あなたが見ることができるように、私の代わりにPropertyChangedのUpdateSourceTriggerのLostFocusを使用しています。 PropertyChangedの場合、入力は一度にすべてチェックされ、「。」などの文字がチェックされます。不可能になる。 LostFocusを使うことで、小数点をドットで入力することができます。
ここでもカンマを入力して、ドットで置き換えます。 KeyDownイベントまたはPreviewKeyDownイベントが発生している間にそれを置き換えることはできますか? KeyDownなどのケースで値を置き換える方法がわかりませんwith TextBoxは大きな助けにはなりません。
[入力時にテキストボックスの文字を置き換えることはできますか?](http://stackoverflow.com/questions/18971198/can-you-replace-characters-in-a-textbox-as-you-タイプ)。あなたは確かに正しいアイデアを持っています。この質問とその答えは、あなたがこれを達成するために必要なすべての洞察を与えるはずです。 – Kilazur
こんにちはキラズル。ありがとうございます。残念ながら、TextBoxはDataGridと同じではなく、そのセルです。一方、私はあなたが以下で見ることができるコンバータを使用してより良い解決策を見つけました。 –
あなたは、コンバータの使用に関する答えの話の1つに気付くでしょう:p – Kilazur