从object转换为double时出现multivalueconverter错误



我使用的是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;
}

相关内容

  • 没有找到相关文章

最新更新