Double
と の間にValueConverter を作成して、テキストString
ボックスの小数点以下の桁数を指定しました。
ただし、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
問題は、「引数として渡された整数を文字列フォーマット式の小数点以下の桁数として使用するにはどうすればよいですか?」ということです。