我使用的是ImultiValueConverter,我想将两个双值从两个文本框转换为双值,并将它们相乘,并在第三个文本框中显示结果这是.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类型并返回该值的正确形式是什么?
大多数情况下,像转换器中的参数值不能解析为double。(在加载时,传递给转换器的值将是空字符串,不能解析为double。因此错误) .
使用 TryParse
查看value是否可以转换为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;
}