2014-04-08 22 views
0

我有三个longlistselector在一个pivot控件中。 每个longlistselector有10-20个项目。 当我回到显示pivot + longlistselector的页面时,该页面需要大约3秒才能在具有512 MB的Nokia Lumia上呈现。如何确定为什么longlistselector需要太长的时间来渲染

我在Visual Studio 2013中进行了性能分析,发现一个帧的CPU利用率大约为85%。挖掘视觉树显示关键项目演示者的渲染时间〜70%。然后,对于枢轴控件中的每个LongListSelector,这些分割为35%,16%,20%。

当我展开ItemPresenter时,我可以看到LongListSelector大部分时间消耗。下面,我可以看到“ContentPresenter”和Canvas,这也是花时间。

我采取了同样的内存分析,但工具无法找到任何可疑的东西。

如何查看究竟需要多长时间才能重新呈现之前显示的页面?

回答

2

我有同样的问题,它似乎只是LongListSelector必须重新呈现您的视图模型的内容,当它返回。我能找到改善这种状况的唯一办法是取消钩在网页“的OnNavigatedTo”法LLS的的ItemSource属性,然后重新勾回了编程页面“装载的”事件(请参阅下面的例如)

脱开:

MyLongListSelectorControl.ItemsSource = null; 

重新创建:

Binding ItemSourceBinding = new Binding("MyDataProperty"); 
MyLongListSelectorControl.SetBinding(LongListSelector.ItemsSourceProperty, ItemSourceBinding); 

注意 “MyDataProperty”,可正是你习惯于在XAML绑定文本。

这样的页面至少可以在视觉上有某种“装载”指示灯,然后longlist选择将在后面填充,使应用程序完全响应的错觉完全呈现。

+0

已经有这个问题太多次...感谢您的信息! – Schaemelhout