C#/ WPF文本框错误:"值''无法转换",TargetNull无法正常工作

jcr*_*jcr 3 c# wpf mvvm targetnullvalue

我有一个Listview和一个Textbox绑定到所选项目.当用户删除文本框中的值(这是一个双精度值)时,我收到以下错误: Value '' cannot be converted.所以我有TargetNullValue='',像这样:

<TextBox x:Name="textBoxVoltage" Text="{Binding Voltage, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, TargetNullValue=''}" />
Run Code Online (Sandbox Code Playgroud)

但我仍然得到错误......我做错了什么?谢谢.

Bru*_*oLM 8

问题是,你Voltage是类型的double''不能被转换为double.

您可以更改Voltage到类型double?,这将让你做到这一点.


替代方案是使用转换器,但是假设0和空是相同的事情:

public class EmptyDoubleConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        if (value == null || (double)value == default(double))
            return "";

        return value.ToString();
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        if (String.IsNullOrEmpty(value as string))
            return default(double);

        return double.Parse(value.ToString());
    }
}
Run Code Online (Sandbox Code Playgroud)