选择正确的ItemsSource容器

时间:2011-02-17 17:02:10

标签: c# wpf xaml itemssource

我有一个UserControl我写过来显示自定义对象的一些属性。这些对象有多个实例,因此我有一个ObservableCollection,所以我可以将它们设置为与ListView的ItemsSource绑定。现在,我可以在ListView中为我的类的每个实例显示此UserControl的实例。

问题是我真的不想要ListView的行为。我不希望用户能够选择整个UserControl。实际上,用户应该能够在UserControl中选择单个元素。

我想过只使用StackPanel来放入这些UserControl,但它没有ItemesSource属性。是否有一种简单的方法可以实现这一目标?

1 个答案:

答案 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