我有一个网格视图,以组的形式显示数据。我得到了具有这种特征的数据:每组接收相同数量的水平空间,由最大的组确定。
为了澄清,我最大的数据组显示了一个包含3行×4列项目的数组。每列为300像素,为该组分配1200像素。其他组只有一个项目。但是,该系统的宽度不是300像素,而是分配1200像素。包含该项目的300个像素,以及仅为空的空间的900个像素。
为什么会发生这种情况的任何解释?
答案 0 :(得分:4)
我在分组方面遇到了同样的问题。我添加了一个水平方向的StackPanel作为ItemsPanel。
<GridView.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</GridView.ItemsPanel>
答案 1 :(得分:0)
您使用的是dataTemplateSelector吗?因为我在使用dataTemplateSelector时遇到了同样的问题。我所做的是使用VariableSizedWrapGrid,它允许您在Grid中具有不同的项目大小。它适用于GroupedList。您可以按照说明所有内容的链接进行操作:
以下是一个示例示例:https://skydrive.live.com/?cid=3a5ca8204ec61147&id=3A5CA8204EC61147!35841
答案 2 :(得分: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>