У меня есть элемент управления ListView, связанный с ListCollectionView
в ViewModel.
Я хотел попробовать сгруппировать эти элементы, но у меня возникли проблемы.
Я установил группировку свойств в ВМ для начала, а затем добавил GroupStyle
.
C #:
ListCollectionView.GroupDescriptions.Add(new PropertyGroupDescription("Category"));
XAML:
<ListView.GroupStyle>
<GroupStyle>
<GroupStyle.HeaderTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=Name}"/>
</DataTemplate>
</GroupStyle.HeaderTemplate>
</GroupStyle>
</ListView.GroupStyle>
Однако теперь список - это просто названия категорий, и сами элементы не видны.
Я не совсем понимаю, что здесь происходит. Когда я создаю шаблон для GroupStyle
, к чему я действительно привязан? Есть ли другие свойства кроме Name
?
Я только что добавил GroupStyle
в ListView, который я уже создал, где я, например, включил ItemTemplate
. Это что-то связанное с GroupStyle
?
Что, если элементы в списке принадлежат другому классу, и я не хочу группировать на основе того, к какому экземпляру класса они принадлежат (у него есть идентификатор). Я бы тогда имел имя группы в качестве свойства этого родительского класса. Это возможно?
ЧАСТИЧНОЕ РЕШЕНИЕ:
Проблема была со стилем, примененным к ListView. Я понятия не имею, что насчет стиля мешало.
ПОЛНОЕ РЕШЕНИЕ
Я не использовал ItemsPresenter
в своем списке ControlTemplate
, решив использовать Panel с IsItemsHost
, установленным на true
. Похоже, что ItemsPresenter должен использоваться для корректной работы GroupStyling.