【发布时间】:2019-04-24 12:01:30
【问题描述】:
我已将ItemsControl 中的ItemsSource 绑定到名为LDLTracks 的ViewModel 列表。在 LDLTrack 视图模型中,有一个我希望绑定到的坐标对象的列表,但是我不确定执行它的正确方法。
我可以通过将我的画布绑定到 TrackViewModel 列表然后在我的
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,因为坐标将是一个列表,但是当我尝试唯一可以绑定的属性是坐标列表计数时.有什么想法吗?
【问题讨论】:
-
如果您需要在数据模板中重复一个列表,您需要另一个
ItemsControl-LDLTracks中的每个LDLTrack对象将被第一个ItemsControl重复,但子列表也需要自己的中继器/数据模板。我假设您想要外部列表中所有坐标对象的列表(嵌套列表?) -
所以你想在
LDLTracks中为每个对象显示几个Line元素,对吧? -
没错@mm8
-
我明白了,您介意对它的语法进行破解,以便如果您有时间我可以稍微了解一下吗?非常感谢@Charleh
-
有人已经发布了那个确切的例子!
标签: c# wpf mvvm binding viewmodel