我的 UI 中有很多数字要处理。我希望它们中的一些没有小数位,一些是小数点后 2 位,而另一些是小数点后(3 位或 4 位小数)。
我有一个名为 DoubleToStringConverter 的转换器,如下所示:
[ValueConversion(typeof(double), typeof(string))]
public class DoubleToStringConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return value == null ? null : ((double)value).ToString("#,0.##########");
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
double retValue;
if (double.TryParse(value as string, out retValue))
{
return retValue;
}
return DependencyProperty.UnsetValue;
}
}
有没有办法只写一个转换器来实现这一点?似乎没有办法有一个参数化的转换器。xaml 中的 StringFormat 似乎将字符串转换为其他类型的数据。它不允许显示来自 xaml 的子字符串。
我只能想到制作IntegerToStringConverter、Double2ToStringConverter、Double3ToStringConverter等。但我想看看是否有更有效的方法。