我已经编写了一个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/

10-13 06:26