我有一个像这样的网格视图:
<GridView ItemsSource="{Binding Source={StaticResource GroupedMatches}}"
SelectionMode="None"
ItemClick="OnItemClicked"
IsItemClickEnabled="True"
Grid.Row="4"
Grid.Column="1">
<GridView.GroupStyle>
<GroupStyle>
<GroupStyle.HeaderTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}" />
</DataTemplate>
</GroupStyle.HeaderTemplate>
</GroupStyle>
</GridView.GroupStyle>
</GridView>
GroupedMatches
是页面中的一个 CollectionViewSource:
<CollectionViewSource x:Name="GroupedMatches"
Source="{Binding Matches}"
IsSourceGrouped="True"
ItemsPath="Matches" />
它的后备视图模型是一个具有 Name 和 Matches 属性的类,其中 Matches 是一个 IEnumerable。
当上面使用跨越两个组的三个项目渲染时,只有两个项目被渲染。如果我删除 GridView.GroupStyle 则所有三个项目都按预期呈现。有谁知道当标题存在时可能导致项目被剔除的原因是什么?
编辑:跟进我发现第二组(其中项目未按预期显示)似乎其大小与第一组匹配。因此,如果第一组中有两个项目,那么第二组将显示两个项目。如果第一组有三个项目,则第一组将显示三个,依此类推。目前,我选择更改布局以更准确地反映 Filip 提到的默认网格布局,但无法确定为什么这两个组的大小是相关联的。