1

我有一个显示分组数据的网格视图。我得到具有此特征的数据显示:每个组接收相同数量的水平空间,由最大的组确定。

为了澄清,我最大的数据组显示了一个 3 行 x 4 列项目的数组。每列是 300 个像素,为组分配 1200 个像素。其他组只有一项。但该组的宽度不是 300 像素,而是系统分配 1200 像素。包含项目的 300 像素,以及 900 像素的空白空间。

任何解释为什么会发生这种情况?

4

3 回答 3

4

I had the same problem with grouping. I added a StackPanel with horizontal orientation as ItemsPanel.

<GridView.ItemsPanel>
    <ItemsPanelTemplate>
        <StackPanel Orientation="Horizontal" />
    </ItemsPanelTemplate>
</GridView.ItemsPanel>
于 2012-10-19T13:06:42.507 回答
0

您使用的是 dataTemplateSelector 吗?因为我在使用 dataTemplateSelector 时遇到了同样的问题。我所做的是使用 VariableSizedWrapGrid,它允许您在网格中拥有不同的项目大小。它适用于 GroupedList。您可以点击那些解释一切的链接:

http://blogs.u2u.be/diederik/post/2012/03/07/Databinding-to-the-VariableSizedWrapGrid-in-Windows-8-Metro.aspx

这是一个示例:https ://skydrive.live.com/?cid=3a5ca8204ec61147&id=3A5CA8204EC61147!35841

于 2012-09-18T08:56:54.450 回答
0

我有同样的问题:

第一个组的宽度决定了所有其他组的宽度。

<GridView
                x:Name="resultsGridView"
                AutomationProperties.AutomationId="ResultsGridView"
                AutomationProperties.Name="Search Results"
                TabIndex="1"
                Grid.Row="1"
                Margin="0,-238,0,0"
                Padding="110,240,110,46"
                SelectionMode="None"
                IsSwipeEnabled="false"
                ItemClick="resultsGridView_ItemClick_1"
                IsItemClickEnabled="True"
                ItemsSource="{Binding Source={StaticResource resultsViewSource}}"
                ItemTemplate="{StaticResource StandardSmallIcon300x70ItemTemplate}">

                <GridView.ItemContainerStyle>
                    <Style TargetType="Control">
                        <Setter Property="Height" Value="150"/>
                        <Setter Property="Margin" Value="0,0,38,8"/>
                   </Style>
                </GridView.ItemContainerStyle>

                <GridView.GroupStyle>
                    <GroupStyle>
                        <GroupStyle.HeaderTemplate>
                            <DataTemplate>
                                <Grid Margin="1,0,0,6">
                                    <Grid.ColumnDefinitions>
                                        <ColumnDefinition Width="Auto" />
                                    </Grid.ColumnDefinitions>
                                    <!--<Button
                                AutomationProperties.Name="Group Title"                                    
                                Style="{StaticResource TextPrimaryButtonStyle}" >-->
                                    <StackPanel Orientation="Horizontal">
                                        <TextBlock Text="{Binding Title}" Margin="3,-7,10,10" Style="{StaticResource GroupHeaderTextStyle}" />
                                        <!--<TextBlock Text="{StaticResource ChevronGlyph}" FontFamily="Segoe UI Symbol" Margin="0,-7,0,10" Style="{StaticResource GroupHeaderTextStyle}"/>-->
                                    </StackPanel>
                                    <!--</Button>Click="Header_Click"-->
                                </Grid>
                            </DataTemplate>
                        </GroupStyle.HeaderTemplate>
                        <GroupStyle.Panel>
                            <ItemsPanelTemplate>
                                <VariableSizedWrapGrid Orientation="Vertical" Margin="0,0,80,0"/>
                            </ItemsPanelTemplate>
                        </GroupStyle.Panel>
                    </GroupStyle>
                </GridView.GroupStyle>
            </GridView>
于 2012-10-09T14:53:16.540 回答