如何创建具有水平而非垂直的分组内容流的GridView?

时间:2016-06-23 13:07:39

标签: database gridview

我有一个包含分组数据的GridView。默认情况下,数据始终显示为垂直。我希望它滚动水平。我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

ItemsPanelTemplate是确定项目布局的那个。通常ItemsWrapGrid用于GridView。该控件具有名为MaximumRowsOrColumns的属性。将其设置为页面上您想要的最大行数。然后,数据始终采用水平布局。

例如:

<GridView ItemsSource="{Binding Source={StaticResource groupedPersons}}" Margin="0,120,0,0" ScrollViewer.HorizontalScrollBarVisibility="Auto" ScrollViewer.VerticalScrollBarVisibility="Auto">
    <GridView.ItemTemplate>
        <DataTemplate>
            <StackPanel Margin="20" Width="300" Height="100" Background="AliceBlue">
                <TextBlock Text="{Binding Name}" FontSize="60" FontWeight="Bold" Style="{StaticResource BaseTextBlockStyle}"/>
                <TextBlock Text="{Binding Age}" FontSize="42" TextWrapping="NoWrap" Style="{StaticResource BodyTextBlockStyle}" />
            </StackPanel>
        </DataTemplate>
    </GridView.ItemTemplate>
    <GridView.ItemsPanel>
        <ItemsPanelTemplate>
            <ItemsWrapGrid MaximumRowsOrColumns="3"/>
        </ItemsPanelTemplate>
    </GridView.ItemsPanel>
    <GridView.GroupStyle>
        <GroupStyle HidesIfEmpty="True">
            <GroupStyle.HeaderTemplate>
                <DataTemplate>
                    <Grid Background="LightGray" Margin="0">
                        <TextBlock Text="{Binding Key}" Foreground="Black" Margin="30" Style="{StaticResource HeaderTextBlockStyle}"/>
                    </Grid>
                </DataTemplate>
            </GroupStyle.HeaderTemplate>
        </GroupStyle>
    </GridView.GroupStyle>
</GridView>