我有一个普通的 GridView,它显示分组数据。我的目标是将标题(一个按钮)从组的顶部移动到组的左侧。
<GridView>
<GridView.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</GridView.ItemsPanel>
<GridView.GroupStyle>
<GroupStyle>
<GroupStyle.HeaderTemplate>
<DataTemplate>
<Grid>
<Button Content="{Binding Title}"/>
</Grid>
</DataTemplate>
</GroupStyle.HeaderTemplate>
<GroupStyle.Panel>
<ItemsPanelTemplate>
<VariableSizedWrapGrid ItemWidth="240" ItemHeight="160" Orientation="Vertical" Margin="0,0,80,0"/>
</ItemsPanelTemplate>
</GroupStyle.Panel>
</GroupStyle>
</GridView.GroupStyle>
<GridView.ItemTemplate>
<!-- item template -->
</GridView.ItemTemplate>
</GridView>
这个问题的答案Grouping GridView in Windows 8 Metro App - 虽然不完全相同的所需布局 - 表示如果不添加额外的“虚拟图 block ”,则无法实现所需的布局。
我想知道是否有可能实现我的目标 - 将标题从组的顶部移动到组的左侧 - 没有这样一个额外的“虚拟瓷砖”。
最佳答案
您需要编辑页眉容器样式。在 Visual Studio 中,右键单击 GridView 并选择
Edit Group Style -> Edit Generated Item Container (Container Style) -> Edit a Copy
您将看到 Group Header(内容控件)和 Group Items(ItemsControl)。两者都包含在一个网格中,默认情况下,该网格是简单的两行。您可以添加一列,将组标题移动到 Grid.Column=0
和 Grid.Row=1
中,您应该一切顺利。
关于c# - 更改 GridView 标题位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12111619/