Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.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# 使用十进制时是否存在CastException?类型_C#_Wpf_Exception_Data Binding - Fatal编程技术网

C# 使用十进制时是否存在CastException?类型

C# 使用十进制时是否存在CastException?类型,c#,wpf,exception,data-binding,C#,Wpf,Exception,Data Binding,在我的场景中,我需要绑定Decimal?键入要加倍的属性?类型属性 下面是使用Double的简单代码 public class Model { private double? id = null; public double? ID { get { return id; } set { id = value; } } } 还有我的Xaml <TextBox

在我的场景中,我需要绑定Decimal?键入要加倍的属性?类型属性

下面是使用Double的简单代码

public class Model
    {
        private double? id = null;
        public double? ID
        {
            get { return id; }
            set { id = value;  }
        }
    }
还有我的Xaml

 <TextBox x:Name="db" Width="100"  Height="{Binding Path=ID}" />
它抛出异常(需要在VS中启用所有异常)。这种行为背后有什么具体原因吗

例外情况详情:

发生System.InvalidCastException\u HResult=-2147467262
_message=Null对象无法转换为值类型。HResult=-2147467262 IsTransient=false消息=Null对象无法访问 无法转换为值类型。Source=mscorlib StackTrace: 在System.Convert.ChangeType(对象值、类型转换类型、IFormatProvider提供程序)InnerException:


感谢添加命名空间
xmlns:sys=“clr namespace:System;assembly=mscorlib”

并使用以下命令:

<TextBox x:Name="db" Width="100"  Height="{Binding ID, TargetNullValue={x:Static sys:String.Empty}}"/>

所以,原因是异常中写的内容:

Null对象无法转换为值类型


当它试图从十进制数中生成一个双精度值(用于“Height”属性)时,转换方法(“System.Convert.ChangeType”)不知道如何处理null(able)值。由于当属性(“double?”)和绑定属性(“ID”)的类型相同时,不会调用此方法,您在原始环境中从未遇到过此错误。

引发的异常是什么?@Clemens我忘了提到我们必须启用所有exceptions@Digifaktur看我的edit@ClemensVS->Debug->Exception->check all thrownHi,谢谢,我只需要这个行为的原因
<TextBox x:Name="db" Width="100"  Height="{Binding ID, TargetNullValue={x:Static sys:String.Empty}}"/>