4

私は WPF DataGrid を持っていて、DataGridTextColumn バインディングをコレクションに使用しています。Collection の項目にはいくつかの float プロパティがありました。

プログラムの起動時に、DataGrid の float プロパティの値を変更します。整数値を入力すると、うまく機能します。しかし、 char と入力すると . float 値の場合は char 。タイプできません。最初にすべての数字を入力してから、にジャンプする必要がありました。char を入力する位置。入力を終了します。

では、どうすれば入力できますか。私の状況では?

ありがとう。

4

4 に答える 4

0

ローカリゼーションの問題である可能性があります。スレッドのカルチャ設定を変更して、これが問題であるかどうかを確認してください。

using System.Globalization;
using System.Threading;

Thread.CurrentThread.CurrentUICulture = new CultureInfo("en");

実行しているカルチャが不明な場合はControl Panel > Clock, Language and Region、次のコードに移動または実行して、設定を再確認できます。

using System.Diagnostics;

Debug.WriteLine("decimal: " + Thread.CurrentThread.CurrentUICulture.NumberFormat.NumberDecimalSeparator);
Debug.WriteLine("thousand: " + Thread.CurrentThread.CurrentUICulture.NumberFormat.NumberGroupSeparator);
于 2012-12-19T10:17:16.390 に答える
0

バインディングでこの正規表現の検証を試してください。

<Validator:RegexValidationRule x:Key="DecimalValidatorFor3Digits"
    RegularExpression="^\d{0,3}(\.\d{0,2})?$"
    ErrorMessage="The field must contain only numbers with max 3 integers and 2 decimals" />

ありがとう

Ck Nitin (TinTin)

于 2012-12-19T11:01:11.847 に答える