0

数値を丸めるために使用するコンバーターがあります。次のようになります。

public class RoundNumberConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        if (!value.IsNumber())
            return DependencyProperty.UnsetValue;

        return Math.Round((float)value, 2).ToString();
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        float number;
        if (float.TryParse(value.ToString(), out number))
            return number;
        return DependencyProperty.UnsetValue;
    }
}

UpdateTrigger を PropertyChanged に切り替えるまで、これはうまくいきました。値 1.23 を入力しようとすると、1 文字は期待どおりに機能しますが、ピリオドを入力すると 1. が 1.0 に変換され、値が変更されていないため、ビューモデルに設定されません。また、1. はテキストボックスに表示する際に文字列 1 に変換されるため、ユーザーはピリオドを追加できません。これを修正する簡単な方法はありますか?

4

1 に答える 1