Phi*_*aes 5 c# listbox windows-phone-8.1
(Windows Phone 8.1)在我的应用程序中,我有一个带有列表框的MainPage.NavigationCacheMode设置为在导航回同一页面时保留状态所必需的.
public MainPage()
{
this.InitializeComponent();
this.DataContext = this;
// cache page
this.NavigationCacheMode = NavigationCacheMode.Required;
}
Run Code Online (Sandbox Code Playgroud)
因此,当我转到另一页并回到我的MainPage时,看起来就像我离开它一样.列表框也处于正确的位置.但每当我触摸它时,它会在滚动之前跳到顶部......
如何才能让它在首先进入顶部之前恢复滚动?
编辑:解决了
好像Listbox在WP8.1中被窃听,而是使用ListView!
小智 5
我有同样的问题,并发现它主要是选择的ItemsPanelTemplate导致Bug.
使用ListView时,标准的ItemsPanelTemplate是ItemsStackPanel,它可以正常工作.如果将其更改为VirtualizingStackPanel(ListBox的标准),则会显示错误.但仅在Windows Phone上,对于Windows,它的工作方式与预期的一样.
所以我假设,当你想使用ListBox而不是ListView时,你必须使用ItemStackPanel作为ItemsPanelTemplate来保存通过NavigationCacheMode的滚动位置.