Wpf 从对象转换为双精度时发生ImultiValueConverter错误

Wpf 从对象转换为双精度时发生ImultiValueConverter错误,wpf,multibinding,imultivalueconverter,Wpf,Multibinding,Imultivalueconverter,我正在使用ImultiValueConverter,我想将两个文本框中的两个双精度值转换为双精度值,然后将它们相乘,并在第三个文本框中显示结果 这是.cs文件中的代码 public class NE_charp_converter:IMultiValueConverter { public object Convert(object[] values, Type targetType,

我正在使用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。加载时,传递给转换器的值将是空字符串,不能解析为双精度。因此是错误的

使用TryParse查看值是否可以转换为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;
}