我在Double
和String
之间创建了一个ValueConverter,以便我的文本框具有给定的小数位数。
但是,我需要能够将一个整数作为参数传递给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
参数传递,并将其用作字符串格式表达式中的小数位数?”
答案 0 :(得分:1)
您可以使用所需的零数构建格式字符串:
string.Format(culture, "{0:0." + new string('0', Convert.ToInt32(parameter)) + "}"