我有一个UserControl我写过来显示自定义对象的一些属性。这些对象有多个实例,因此我有一个ObservableCollection,所以我可以将它们设置为与ListView的ItemsSource绑定。现在,我可以在ListView中为我的类的每个实例显示此UserControl的实例。
问题是我真的不想要ListView的行为。我不希望用户能够选择整个UserControl。实际上,用户应该能够在UserControl中选择单个元素。
我想过只使用StackPanel来放入这些UserControl,但它没有ItemesSource属性。是否有一种简单的方法可以实现这一目标?
答案 0 :(得分:6)
将ListView
替换为ItemsControl
,并将ItemTemplate
设置为适合您对象的DataTemplate
。如果您想更改面板布置项目的方式,可以设置ItemsPanel
。
<ItemsControl ItemsSource="{Binding Items}"
ItemTemplate="{StaticResource ItemTemplate}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
请参阅此example