РЕДАКТИРОВАТЬ # 2:
Вот минимальный Репозиторий Github Я создал, чтобы воспроизвести проблему.
Я считаю, что этоошибка в реализации виртуализации сгруппированной ListViewBase, когда некоторые группы пусты
У меня есть просмотр списка, панель элементов которого установлена в StackPanel, так как мне нужно установить панель стиля группы в шахматную панель, которая нехорошо работают с панелью стека предметов.
Проблема в том, что из 27 групп показаны только 16 групп.Я протестировал его в другом представлении списка и подтвердил, что проблема заключается в том, что на панели стека отображается только ограниченное число дочерних элементов (странно то, что в моем тесте это не 16, а 22).
Я пробовал VirtualizingStackPanel, нов отличие от StackPanel, я не могу расположить его по центру в представлении списка после установки его MaxWidth, хотя он отображает все его дочерние элементы.
Вот мой XAML:
<ListView ItemsSource="{Binding Source={StaticResource NoteViewSource}}"
Padding="0 0"
ItemTemplate="{StaticResource NormalNoteTemplate}"
x:Name="ListView"
IsItemClickEnabled="True"
ItemClick="ListView_OnItemClick"
SelectionChanged="ListView_OnSelectionChanged"
SelectionMode="Extended">
<ListView.Footer>
<Border Height="80" />
</ListView.Footer>
<ListView.GroupStyle>
<GroupStyle HidesIfEmpty="False">
<GroupStyle.HeaderTemplate>
<DataTemplate x:DataType="viewModels:NoteList">
<TextBlock Text="{x:Bind Header, Mode=OneWay}"
FontSize="18"
Margin="0,16,0,8"
FontWeight="Bold" />
</DataTemplate>
</GroupStyle.HeaderTemplate>
<GroupStyle.Panel>
<ItemsPanelTemplate>
<uwp:SGStaggeredPanel DesiredColumnWidth="220"/>
</ItemsPanelTemplate>
</GroupStyle.Panel>
</GroupStyle>
</ListView.GroupStyle>
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<!-- custom group panel won't work if this is item panel-->
<StackPanel />
</ItemsPanelTemplate>
</ListView.ItemsPanel>
</ListView>
Редактировать:
Я проверил его еще раз, и кажется, что StackPanel не является проблемой, поскольку его число дочерних элементов равно 22. Это означает, что у него неправильное количество дочерних элементов, что означает, что проблема в CollectionViewSource или ListView.пропускает только 22 элемента в StackPanel, а не полный счет.
Но я не могу понять, почему VirtualizingStackPanel работает ??