我正在使用答案中的代码WPF: how to bind lines to UI elements?而且我得到“BindingExpression产生的值对目标属性无效.;值='NaN'”。我的代码和链接之间的唯一区别是我没有设置Point point = null;
只是Point point;
,因为它会产生转换问题。
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") });
}
有人能帮助我并说出什么是错的以及如何解决它?
答案 0 :(得分:-1)
这是因为您的变量未初始化。 Point point = null
正在初始化其代码。
Point point;
仅定义变量。您可能拥有的唯一其他选项就是像这样启动它
Point point = new Point();
因为您无法绑定到未初始化的变量。