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列にある場合、アイテムが1つしかない場合でも、各グループには5列のスペースがあります。

したがって、写真では、Dには3つの列スペースがあり、Gにもあります。

前もって感謝します


編集 :

これを追加することで解決した問題:

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

あなたの答えをありがとう

4

1 に答える 1

0

その空の領域の理由は、名前と文字を提供するクラスの空のインスタンスがあるためだと思います。ただし、そのようなことがなければ、これも解決策になると思います。

ソースにプロパティを作成して、シーケンスに要素があるかどうかを返すようにします。可視性を返すために実行できます。

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

次に、それをグリッドの可視性にバインドします。

于 2013-02-10T20:42:04.557 に答える