整数型ではない数量フィールドがあるデータグリッドがあります。ここで、ユーザーが正の整数のみを入力するように制限したいと思います。データグリッド キー イベントで入力を処理するソリューションは必要ありません。助言がありますか?
そして、これが私が使用しているコンバーターです
public class ValueConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{ return value; }
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (!OnlyPositiveIntergerAllowed(value.ToString()))
{
string s = Regex.Replace(value.ToString(), @"[^0-9]+", string.Empty);
if(s=="")
return 0;
else
return s;
}
if (value is string && (string)value == "")
{
return 0;
}
return value;
}
private static bool OnlyPositiveIntergerAllowed(string text)
{
var regex = new Regex("[^0-9]+"); //regex that matches disallowed text
return !regex.IsMatch(text);
}
}
注: 正常に動作します (つまり、123dasd の場合。フォーカスが失われたときに変換されます 123) が、ユーザーが入力できるようにします (dasd.)。