我正在开发一个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>
上的粘贴标头?
答案 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>