删除分组ListView上的粘性标头

时间:2014-10-15 22:41:24

标签: xaml windows-runtime winrt-xaml windows-phone-8.1

我正在开发一个Windows Phone 8.1运行时应用,我正在使用ListView,只设置了GroupStyle及其HeaderTemplate

一切正常,除了我需要在滚动列表时禁用始终位于顶部的粘性标题,但我无法找到需要编辑的模板以完全禁用粘性标题。真正困扰我的一件事是,当我离开页面时,当前标题消失,同一位置出现空白。

代码很简单:

<CollectionViewSource
    x:Key="cvs"
    IsSourceGrouped="True"
    ItemsPath="GroupItems"
    Source="{Binding Categories}">
</CollectionViewSource>
<{1>}中的

Resource

ListView

所以我的问题是如何禁用分组<ListView x:Name="ListView" IsSwipeEnabled="False" ItemTemplateSelector="{StaticResource AllGamesViewTemplateSelector}" ItemsSource="{Binding Source={StaticResource cvs}}" SelectionMode="None" ShowsScrollingPlaceholders="True"> <ListView.GroupStyle> <GroupStyle HeaderTemplate="{StaticResource AllGamesViewCategoryTemplate}"/> </ListView.GroupStyle> </ListView> 上的粘贴标头?

3 个答案:

答案 0 :(得分:1)

您应该能够将ListView包装在ScrollViewer中以防止粘性标题。

答案 1 :(得分:1)

我想到的一个解决方案是在ListView中不使用分组,只是模拟它。创建一个集合,该集合将保存表示标题的组和占位符项的项目。然后使用ListView的模板选择器将占位符项呈现为标题。

答案 2 :(得分:1)

我有同样的问题,最后遇到了这个问题:https://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.controls.itemsstackpanel.arestickygroupheadersenabled?f=255&MSPPError=-2147217396

在ListView的ItemsPanelTemplate中设置AreStickyGroupHeadersEnabled属性。

<ListView
    x:Name="ListView"
    IsSwipeEnabled="False"
    ItemTemplateSelector="{StaticResource AllGamesViewTemplateSelector}"
    ItemsSource="{Binding Source={StaticResource cvs}}"
    SelectionMode="None"
    ShowsScrollingPlaceholders="True">
    <ListView.GroupStyle>
        <GroupStyle HeaderTemplate="{StaticResource AllGamesViewCategoryTemplate}"/>
    </ListView.GroupStyle>

    <ListView.ItemsPanel>
        <ItemsPanelTemplate>
            <ItemsStackPanel AreStickyGroupHeadersEnabled="False"/>
        </ItemsPanelTemplate>
    </ListView.ItemsPanel>
</ListView>