【问题标题】:How to make vertical scrolling list view with groups如何使用组制作垂直滚动列表视图
【发布时间】:2014-04-11 16:10:24
【问题描述】:

我需要创建一个启用分组的垂直滚动列表视图,如下所示:

这是我目前拥有的:

<common:VariableSizeListViewWithSelection     ItemsSource="{Binding Source={StaticResource cvs}}"
                                              ScrollViewer.VerticalScrollBarVisibility="Auto" 
                                              IsItemClickEnabled="True"  
                                              ItemTemplateSelector="{StaticResource summaryViewTemplateSelector}" >


    <GroupStyle>
        <GroupStyle.HeaderTemplate>
            <DataTemplate>
                <Grid Margin="0,0,0,2">
                    <TextBlock Grid.Column="0" Text="{Binding Title}" Margin="0,-11,10,10" Style="{StaticResource SubheaderTextBlockStyle}" TextWrapping="NoWrap" FontWeight="SemiBold" Foreground="#333333" />
                </Grid>
            </DataTemplate>
        </GroupStyle.HeaderTemplate>
    </GroupStyle>

    <common:VariableSizeListViewWithSelection.GroupStyle>
        <GroupStyle HidesIfEmpty="True">

            <GroupStyle.HeaderTemplate>
                <DataTemplate>
                    <Grid Background="LightGray" Margin="0">
                        <TextBlock Text='{Binding Title}' Foreground="Black" Margin="5" Style="{StaticResource HeaderTextBlockStyle}"/>
                    </Grid>
                </DataTemplate>
            </GroupStyle.HeaderTemplate>

            <GroupStyle.Panel>
                <ItemsPanelTemplate>
                    <WrapGrid Orientation="Horizontal" MaximumRowsOrColumns="4" Width="300" />
                </ItemsPanelTemplate>
            </GroupStyle.Panel>

        </GroupStyle>
    </common:VariableSizeListViewWithSelection.GroupStyle>

</common:VariableSizeListViewWithSelection>

但这并没有按预期工作,它创建了一个具有正确分组但只有一列的列表视图,如下所示:

你能指出我做错了什么吗?

【问题讨论】:

  • 您确定在WrapGrid 的每行中可以容纳超过 1 个项目吗?Width 为 300?
  • 我还可以建议每行 XAML 格式设置 1 个属性吗?虽然在编码时它是好是坏可能是相当主观的(尽管它使差异更容易!) - 它在 Stack Overflow 上更具可读性。看到这个帖子:blog.onedevjob.com/2011/11/07/beginning-winrt-development
  • 嗨@FilipSkakun:当我将 wrapGrid 的宽度增加到 1500 时,我仍然每行只得到一个项目。

标签: xaml winrt-xaml


【解决方案1】:

我们让它离线了一段时间,似乎将ListViewItemsPanel 更改为StackPanel 以使其工作。我感觉默认的ItemsStackPanel 应该仍然支持分组,但可能不支持自定义组布局面板。也许有一种方法可以重新配置 GridView 以垂直滚动,这也可以工作。

【讨论】:

    猜你喜欢
    • 2011-07-27
    • 1970-01-01
    • 2013-02-10
    • 2019-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-24
    相关资源
    最近更新 更多