我正在尝试使用ItemsControl
在画布上绘制线条。我正在使用MVVM架构。我遇到一个问题,即尽管开始/结束位置绑定,但每条线都在{0,0}坐标处绘制(我仔细检查,值是正确的)。
<ItemsControl Name="ic2"
ItemsSource="{Binding Edges}" >
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Canvas/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Line X1="{Binding X}"
Y1="{Binding Y}"
X2="{Binding DestinationX}"
Y2="{Binding DestinationY}"
Panel.ZIndex="10"
StrokeThickness="5"
Stroke="Black"
Stretch="Fill"
Fill="Black" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
我在MainWindow中设置了ItemsControl(ic2)的DataContex this.ic2.DataContext = new MapManagerVM();
MVVM类MapManagerVM
包含
public ObservableCollection<Edge> Edges { get; set; }
类Edge
包含int
,X
,Y
和DestinationX
的{{1}}属性。
参考下图,黑线应位于蓝色节点之间。正如您所看到的,行的长度是正确的,但是位置是关闭的(对象的DestinationY
和X
是正确的但它们在画布上的绘制不正确)