0

我有一个按姓名的第一个字母分组的人员列表。

结果如下:

图片

问题是 D 组和 G 组之间的空间,我该如何删除它?

GroupStyle 是这样声明的:

<GridView.ItemTemplate>
                    <DataTemplate>
                        <Border Width="150" Height="150" Background="#FFF14B01">
                            <Grid>
                                <Grid.RowDefinitions>
                                    <RowDefinition Height="30" />
                                    <RowDefinition Height="30" />
                                </Grid.RowDefinitions>
                                <TextBlock Text="{Binding Name}" VerticalAlignment="Center" Foreground="White" />
                            </Grid>
                        </Border>
                    </DataTemplate>
                </GridView.ItemTemplate>
                <GridView.GroupStyle>
                    <GroupStyle HidesIfEmpty="True">
                        <GroupStyle.HeaderTemplate>
                            <DataTemplate>
                                <Grid Margin="1,0,0,20">
                                    <TextBlock FontWeight="Bold" Style="{StaticResource SubheaderTextStyle}" Text="{Binding Title}" />
                                </Grid>
                            </DataTemplate>
                        </GroupStyle.HeaderTemplate>
                        <GroupStyle.Panel>
                            <ItemsPanelTemplate>
                                <VariableSizedWrapGrid Margin="0,0,80,0" ItemHeight="150" ItemWidth="150" />
                            </ItemsPanelTemplate>
                        </GroupStyle.Panel>
                    </GroupStyle>
                </GridView.GroupStyle>

Key / Value 集合中没有带有空集合的键。

事实上,如果组“A”在 5 列上,即使只有一项,每个组也将有 5 列空间。

所以,在图片中,D 有 3 个列空间,G 也有。

提前致谢


编辑 :

通过添加以下内容解决了问题:

<GridView.ItemsPanel>
            <ItemsPanelTemplate>
                <StackPanel Orientation="Horizontal"/>
            </ItemsPanelTemplate>
        </GridView.ItemsPanel>

感谢您的回答

4

1 回答 1

0

我认为那个空白区域的原因是您有提供名称和字母的类的空实例。但是,如果没有这样的事情,我想这也是一个解决方案:

在源中创建一个属性,以便它返回序列中是否存在元素 - 可以这样做以返回 Visibility。

public Visibility IsVisible
{
        get
        {
        return Key == "" ? Visibility.Collapsed : Visibility.Visible;
        }
}

然后将其绑定到网格的可见性。

于 2013-02-10T20:42:04.557 回答