[英]C#/WPF Textbox error : “Value '' cannot be converted”, TargetNull not working
我有一个Listview
和一个绑定到所选项目的Textbox
。 当用户删除文本框中的值(这是一个双精度值)时,我收到以下错误: Value '' cannot be converted
。 所以我有了TargetNullValue=''
,就像这样:
<TextBox x:Name="textBoxVoltage" Text="{Binding Voltage, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, TargetNullValue=''}" />
但我仍然得到错误......我做错了什么? 谢谢。
问题是你的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());
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.