我采用了标准的 Item GridView 模板并对其进行了一些修改以满足我的需要。实际上,我对模板代码的改动很少。
我有一个组,其中有很多项目(92 项)。listview 确实渲染了其中的一些,但它只渲染了其中的 12 个。这是为什么?如何覆盖它并使其显示所有项目?
这是我在设置 DefaultViewModel 时进入调试器的屏幕截图:
我像这样将项目添加到我的列表视图中(当我从服务中解析 XML 时):
DataSource.AddItem(new DataItem(... title, name, etc, DataSource.getGroup("gallery")));
然后在我的 DataSource 类中(这与示例完全相同,我只是重命名了它),我添加了这个方法:
public static void AddItem(DataItem item)
{
item.Group.Items.Add(item);
}
这是呈现它的 XAML 的样子(它与 GridView 模板相同:
<GridView.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</GridView.ItemsPanel>
<GridView.GroupStyle>
<GroupStyle>
<GroupStyle.HeaderTemplate>
<DataTemplate>
<Grid Margin="1,0,0,6">
<Button
AutomationProperties.Name="Group Title"
Content="{Binding Title}"
Click="Header_Click"
Style="{StaticResource TextButtonStyle}"/>
</Grid>
</DataTemplate>
</GroupStyle.HeaderTemplate>
<GroupStyle.Panel>
<ItemsPanelTemplate>
<VariableSizedWrapGrid Orientation="Vertical" Margin="0,0,80,0"/>
</ItemsPanelTemplate>
</GroupStyle.Panel>
</GroupStyle>
</GridView.GroupStyle>
</GridView>
我真的很感激任何帮助。