我试图让用户通过在点击和拖动时收集点来在画布上绘图。我正在使用 MVVM 方法,并且可以成功收集点,并在视图模型上填充一组线。但是,我需要能够在画布上显示这些线条控件,以便用户可以看到他们正在绘制的线条。
我的问题是,如何将 Line 控件的 View Models 集合数据绑定到画布的 Children 集合?
我试图让用户通过在点击和拖动时收集点来在画布上绘图。我正在使用 MVVM 方法,并且可以成功收集点,并在视图模型上填充一组线。但是,我需要能够在画布上显示这些线条控件,以便用户可以看到他们正在绘制的线条。
我的问题是,如何将 Line 控件的 View Models 集合数据绑定到画布的 Children 集合?
这可以使用以下方法来实现ItemsControl
:
<ItemsControl ItemsSource="{Binding CollectionOfLines}">
<!-- specify the panel that the items will be added to -->
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Canvas/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Line X="{Binding ...}" Y="{Binding ...}" .../>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>