0

我在 和 之间创建了一个 ValueConverter DoubleString以便我的文本框具有给定的小数位数。

不过,我需要能够将整数作为参数传递给 ValueConverter 方法,这样我就可以在任何给定的文本框上使用不同的小数位数,同时使用相同的转换器。

我的转换器代码在这里:

[ValueConversion(typeof(Double), typeof(String))]
public class DoubleToStringPontoVirgula : IValueConverter {

    // Converte um double em uma string separada por vírgula com tantas casas depois da vírgula
    public object Convert(object value,
                          Type targetType,
                          object parameter, // I would like to use this!!
                          System.Globalization.CultureInfo culture) {

        string resultado = string.Format("{0:0.0}", // Shouldn't be a hardcoded format!
                                           value);
        return resultado;

    }

    // Converte uma string separada por ponto OU vírgula em um double
    public object ConvertBack(object value,
                              Type targetType,
                              object parameter,
                              System.Globalization.CultureInfo culture) {

        string entrada = value as string;

        double resultado = System.Convert.ToDouble(entrada.Replace('.', ','));

        return resultado;

    }

}

在 XAML 中,我想像这样传递参数(以“2”个位置为例):

<TextBox Text="{Binding Peso, Converter={StaticResource DoubleToStringPontoVirgula}, ConverterParameter=2}"/>

问题是:“我怎样才能将作为parametar参数传递的整数用作字符串格式化表达式中的小数位数?”

4

1 回答 1

1

您可以使用所需的零数构建格式字符串:

string.Format(culture, "{0:0." + new string('0', Convert.ToInt32(parameter)) + "}"
于 2013-10-21T13:43:55.250 回答