我正在尝试创建一个包含
等元素的网格| 1 | 4 | 7 |
| 2 | 5 | 8 | ===> extend
| 3 | 6 | 9 |
由于数据非常大,我需要使用UI虚拟化,我在大多数示例中看到的是VirtualizingStackPanel
以下是我在XAML中设置Gridview的方法。问题是以下代码创建了单个元素的水平行(这是有意义的,因为它只是一个堆栈面板)。
| 1 | 2 | 3 | 4 | .....
<GridView
x:Name="itemGridView"
AutomationProperties.AutomationId="ItemsGridView"
AutomationProperties.Name="Items"
TabIndex="1"
Grid.RowSpan="3"
Padding="116,136,116,46"
ItemsSource="{Binding Source={StaticResource itemsViewSource}}"
ItemTemplateSelector="{StaticResource CellStyleSelector}"
ItemClick="ItemView_ItemClick"
IsItemClickEnabled="True"
SelectionMode="Extended"
SelectionChanged="ItemView_SelectionChanged"
IsSwipeEnabled="true">
<GridView.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</GridView.ItemsPanel>
</GridView>
如何使用virtualizingstackpanel显示水平延伸的网格?我的数据中没有任何组,所以显示virtualizingstackpanel的所有示例都显示了这一点? 我是Windows Store应用程序开发人员的新手(大多数是在iOS和Android上),所以我们会很感激任何代码示例或资源。
谢谢
答案 0 :(得分:1)
我认为您通过将数据源实施到接口ISupportIncrementalLoading
来进行UI虚拟化。试试WrapGrid
,然后设置MaximumRowsOrColumns
。
<GridView
x:Name="itemGridView"
AutomationProperties.AutomationId="ItemsGridView"
AutomationProperties.Name="Items"
TabIndex="1"
Grid.RowSpan="3"
Padding="116,136,116,46"
ItemsSource="{Binding Source={StaticResource itemsViewSource}}"
ItemTemplateSelector="{StaticResource CellStyleSelector}"
ItemClick="ItemView_ItemClick"
IsItemClickEnabled="True"
SelectionMode="Extended"
SelectionChanged="ItemView_SelectionChanged"
IsSwipeEnabled="true">
<GridView.ItemsPanel>
<ItemsPanelTemplate>
<WrapGrid MaximumRowsOrColumns="3" Orientation="Horizontal"/>
</ItemsPanelTemplate>
</GridView.ItemsPanel>
</GridView>