ItemsControl中的WPF行位置已关闭

时间:2018-02-28 22:13:22

标签: c# wpf mvvm

我正在尝试使用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包含intXYDestinationX的{​​{1}}属性。

参考下图,黑线应位于蓝色节点之间。正如您所看到的,行的长度是正确的,但是位置是关闭的(对象的DestinationYX是正确的但它们在画布上的绘制不正确) Wrong line position

0 个答案:

没有答案