我已经编写了一个UserControl来显示自定义对象的一些属性。这些对象有多个实例,因此我有一个ObservableCollection,因此可以将它们设置为与ListView绑定的ItemsSource。现在,我可以在ListView中为类的每个实例显示此UserControl的实例。
问题是我真的不想要ListView的行为。我不希望用户能够选择整个UserControl。实际上,用户应该能够在UserControl中选择单个元素。
我考虑过仅使用StackPanel将这些UserControl放入其中,但是它没有ItemesSource属性。有没有简单的方法可以做到这一点?
最佳答案
将ListView
替换为ItemsControl
,然后将ItemTemplate
设置为适合您对象的DataTemplate
。如果要更改面板布局项目的方式,可以设置ItemsPanel
。
<ItemsControl ItemsSource="{Binding Items}"
ItemTemplate="{StaticResource ItemTemplate}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
看到这个example
关于c# - 选择正确的ItemsSource容器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5032055/