是否可以将画布上的控件绑定到对象列表?我在想这样的事情:
<UserControl.Resources>
<DataTemplate x:Key="MyItemTemplate">
<ContentControl Content="{Binding Converter={StaticResource MyControlConverter}}"></ContentControl>
</DataTemplate>
</UserControl.Resources>
<Canvas ItemsSource="{Binding MyItems}" ItemTemplate="{StaticResource MyItemTemplate}">
</Canvas>
MyItems就是这样:
public List<Tuple<ControlType, Point>> MyItems;
基本上,会有一个转换器将每个Tuple对象转换为画布上给定Point坐标的控件。我知道Canvas控件上没有“ItemsSource”或“ItemsTemplate”属性,但是这可能以其他方式实现吗?
答案 0 :(得分:4)
添加列表框并将其itemspanel设置为画布。
<ListBox ItemsSource="{Binding MyItems}" ItemTemplate="{StaticResource MyItemTemplate}">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<Canvas/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
</ListBox>