我正在使用ImultiValueConverter,我想将两个文本框中的两个double值转换为double并将它们相乘并在第三个文本框中显示结果 这是.cs文件中的代码
public class NE_charp_converter:IMultiValueConverter
{
public object Convert(object[] values,
Type targetType,
object parameter,
System.Globalization.CultureInfo culture)
{
double RE_sharp = double.Parse ((string)values[0]) +
double.Parse((string)values[1]) ;
return RE_sharp.ToString();
}
public object[] ConvertBack(object value, Type[] targetTypes,
object parameter,
System.Globalization.CultureInfo culture)
{
return null;
}
}
这是xaml代码:
<TextBox x:Name="NE_charp_txt" Height="77" Margin="0,151,37,0"
VerticalAlignment="Top" HorizontalAlignment="Right"
Width="51.615" BorderBrush="Black">
<TextBox.Text>
<MultiBinding Converter="{StaticResource NE_CONVERTER}" Mode="OneWay">
<Binding ElementName="WBC_txt" Path="Text"/>
<Binding ElementName="NE_percent_txt" Path="Text"/>
</MultiBinding>
</TextBox.Text>
</TextBox>
但是我收到了这条消息: 确保您的方法参数格式正确
将对象转换为double并返回此值的正确形式是什么?!!
答案 0 :(得分:2)
大多数情况下,转换器中的 参数值无法解析为双重 。 (在加载时,传递给转换器的值将是空字符串,无法解析为double。因此错误)。
使用 TryParse
查看是否可以将值转换为double。如果没有返回空字符串,则返回两个double值的总和。
public object Convert(object[] values, Type targetType, object parameter,
System.Globalization.CultureInfo culture)
{
double firstValue = 0.0;
double secondValue = 0.0;
if (double.TryParse(values[0].ToString(), out firstValue) &&
double.TryParse(values[1].ToString(), out secondValue))
{
double RE_sharp = firstValue + secondValue;
return RE_sharp.ToString();
}
return String.Empty;
}