Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#/WPF文本框错误:";价值'';无法转换";,TargetNull不工作_C#_Wpf_Mvvm_Targetnullvalue - Fatal编程技术网

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

C#/WPF文本框错误:";价值'';无法转换";,TargetNull不工作,c#,wpf,mvvm,targetnullvalue,C#,Wpf,Mvvm,Targetnullvalue,我有一个列表视图和一个文本框绑定到所选项目。 当用户删除文本框中的值(双精度)时,我得到以下错误:值“”无法转换。所以我有了TargetNullValue=',如下所示: <TextBox x:Name="textBoxVoltage" Text="{Binding Voltage, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, TargetNullValue=''}" /> 但我还是会犯错……我做错了什么?谢谢。问题是您的

我有一个
列表视图
和一个
文本框
绑定到所选项目。 当用户删除文本框中的值(双精度)时,我得到以下错误:
值“”无法转换
。所以我有了
TargetNullValue='
,如下所示:

<TextBox x:Name="textBoxVoltage" Text="{Binding Voltage, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, TargetNullValue=''}" />


但我还是会犯错……我做错了什么?谢谢。

问题是您的
电压属于
double
类型,并且
'
无法转换为double

您可以将
Voltage
类型更改为
double?
,这将允许您执行此操作


另一种方法是使用转换器,但假设
0
和empty是同一件事:

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());
    }
}

我不明白这个错误。如果您这样尝试,您是否仍然收到错误
TargetNullValue={x:Static system:String.Empty}
其中
system
是名称空间映射
xmlns:system=“clr namespace:system;assembly=mscorlib”
谢谢,但这对我不起作用。还是会出错。太好了!谢谢,
double?
有效。它是什么?可为空的双精度?是的,可为空的双精度。因此,它可以转换为空字符串。而且它似乎也适用于
integer
。精彩的!谢谢