我有一个用来四舍五入的转换器。它看起来像这样:
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,所以用户不能加句点。有没有人有一个简单的方法来解决这个问题?