Выбор правильного контейнера ItemsSource - PullRequest
1 голос
/ 17 февраля 2011

У меня есть UserControl, который я написал для отображения нескольких свойств из пользовательского объекта.Существует несколько экземпляров этих объектов, поэтому у меня есть ObservableCollection, чтобы я мог установить их как привязку ItemsSource к ListView.Теперь я могу получить экземпляр этого UserControl, отображаемого для каждого экземпляра моего класса, в моем ListView.

Проблема в том, что я не хочу, чтобы поведение ListView действительно менялось.Я не хочу, чтобы пользователь мог выбрать весь UserControl.Фактически, пользователь должен иметь возможность выбирать отдельные элементы в UserControl.

Я думал только об использовании StackPanel для вставки этих пользовательских элементов управления, но у него нет свойства ItemesSource.Есть ли простой способ сделать это?

1 Ответ

6 голосов
/ 17 февраля 2011

Замените ваш ListView на ItemsControl и установите для ItemTemplate подходящее значение DataTemplate для ваших объектов. Вы можете установить ItemsPanel, если хотите изменить способ расположения элементов на панели.

<ItemsControl ItemsSource="{Binding Items}"
              ItemTemplate="{StaticResource ItemTemplate}">
  <ItemsControl.ItemsPanel>
    <ItemsPanelTemplate>
      <StackPanel Orientation="Horizontal" />
    </ItemsPanelTemplate>
  </ItemsControl.ItemsPanel>
</ItemsControl>

См. пример

...