我已将ItemsSource
中的ItemsControl
绑定到一个称为LDLTracks的ViewModel列表。在LDLTrack视图模型中,有一个我希望绑定到的坐标对象的列表,但是我不确定该使用哪种正确的方法。
我可以通过将画布绑定到TrackViewModels列表,然后在我的
中进行此操作XAML:
<ItemsControl ItemsSource="{Binding LDLTracks}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Canvas/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Line X1="{Binding X1}" Y1="{Binding Y1}" X2="{Binding X2}" Y2="{Binding Y2}" Stroke="{Binding LineColor}" StrokeThickness="5">
<Line.InputBindings>
<MouseBinding Gesture="LeftClick" Command="{Binding FooCommand}"/>
</Line.InputBindings>
</Line>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
我希望将{Binding X1}
替换为“坐标列表”,因此理想情况下应为“ Coordinates.X1”,因为“坐标”是一个列表,但是当我尝试绑定到的唯一属性是“坐标”时列表计数。有什么想法吗?
答案 0 :(得分:2)
您可以使用绑定到ItemsControl
列表的内部/嵌套Coordinates
:
<ItemsControl ItemsSource="{Binding LDLTracks}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Canvas/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<ItemsControl ItemsSource="{Binding Coordinates}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Line X1="{Binding X1}" Y1="{Binding Y1}" X2="{Binding X2}" Y2="{Binding Y2}"
Stroke="{Binding LineColor}" StrokeThickness="5">
<Line.InputBindings>
<MouseBinding Gesture="LeftClick" Command="{Binding FooCommand}"/>
</Line.InputBindings>
</Line>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>