【问题标题】:Remove space between GridView Groups删除 GridView 组之间的空间
【发布时间】:2013-02-10 20:09:20
【问题描述】:

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

结果如下:

问题是 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>

感谢您的回答

【问题讨论】:

  • 你应该把&lt;VariableSizedWrapGrid Margin="0,0,80,0"&gt;改成&lt;VariableSizedWrapGrid Margin="0"

标签: xaml windows-8 windows-runtime


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 2019-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-24
    • 1970-01-01
    • 2019-06-13
    • 2020-11-19
    • 1970-01-01
    相关资源
    最近更新 更多