C# 数据绑定NaN

C# 数据绑定NaN,c#,wpf,binding,pixelsense,C#,Wpf,Binding,Pixelsense,我使用的代码来自这里的答案,我得到的BindingExpression生成的值对于目标属性无效。;Value='NaN'。我的代码和链接之间唯一的区别是我没有设置Point=null;只要一点;因为它会产生转换问题。 MidpointConcerter.cs与链接中的完全相同。我的绑定方法: private void BindLineToScatterViewItems(Line line, ScatterViewItem StartItem, ScatterViewItem EndIt

我使用的代码来自这里的答案,我得到的BindingExpression生成的值对于目标属性无效。;Value='NaN'。我的代码和链接之间唯一的区别是我没有设置Point=null;只要一点;因为它会产生转换问题。 MidpointConcerter.cs与链接中的完全相同。我的绑定方法:

    private void BindLineToScatterViewItems(Line line, ScatterViewItem StartItem, ScatterViewItem EndItem)
        {
            var x = new MidpointConverter(false);
            var y = new MidpointConverter(true);

            BindingOperations.SetBinding(line, Line.X1Property,
               new Binding { Source = StartItem, Converter = x, ConverterParameter = MidpointSide.Bottom });
           BindingOperations.SetBinding(line, Line.Y1Property,
                new Binding { Source = StartItem, Converter = y, ConverterParameter = MidpointSide.Bottom });
//old in the middle
BindingOperations.SetBinding(line, Line.X2Property,
                                        new Binding { Source = EndItem, Path = new PropertyPath("ActualCenter.X") });
            BindingOperations.SetBinding(line, Line.Y2Property,
                                         new Binding { Source = EndItem, Path = new PropertyPath("ActualCenter.Y") });
        }

有人能帮我说一下什么地方出了问题,我该如何修复它吗?

这是因为您的变量没有初始化。Point=null正在其代码中初始化

Point point; 
仅定义变量。你唯一的选择可能是像这样初始化它

Point point = new Point(); 
因为您不能绑定到未初始化的变量


Point是一个结构,因此在使用它之前不需要用new初始化,X和Y中的值也设置为零,以非NaN开头。嗯,你说的很有意义,但是它也不起作用。@Andy point确实需要初始化,或者编译器会抱怨,正如我在上面发布的屏幕截图中所看到的那样。我想最好在这里向我们展示一些代码,也可以粘贴整个绑定异常吗?您不设置Point=null是正确的;因为这甚至不会编译.System.Windows.Data错误:5:BindingExpression生成的值对目标属性无效。;Value='NaN'BindingExpression:Path=ActualCenter.X;DataItem='ScatterViewItem'名称='EndItem2';目标元素是'Line'Name=;目标属性为'X2'类型'Double'System.Windows.Data错误:5:BindingExpression生成的值对目标属性无效。;Value='NaN'BindingExpression:Path=ActualCenter.Y;DataItem='ScatterViewItem'名称='EndItem2';目标元素是'Line'Name=;目标属性是'Y2'类型'Double',如果您将该方法的断点设为参数line==null?Hmmm,请给我们一些XAML,以便我们可以查看绑定,同时喝点啤酒。。这通常有助于诊断过程。在中点转换器类中,点的X和Y为NaN