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
。精彩的!谢谢