【发布时间】:2015-08-22 17:06:48
【问题描述】:
当用户选择返回时,恢复视图“状态”的最佳方法是什么。 例如,第一个视图“UserList”女巫包含许多联系人的列表视图,第二个视图包含联系人详细信息。用户返回“UserList”视图时如何检索状态(包括滚动视图位置等)?
【问题讨论】:
当用户选择返回时,恢复视图“状态”的最佳方法是什么。 例如,第一个视图“UserList”女巫包含许多联系人的列表视图,第二个视图包含联系人详细信息。用户返回“UserList”视图时如何检索状态(包括滚动视图位置等)?
【问题讨论】:
最后,简单的方法是使用
NavigationCacheMode = NavigationCacheMode.Enabled
在页面后面的代码中。
【讨论】:
您应该在SplitView的Content中使用一个Frame,当您返回时它会以相同的信息恢复以前的内容,我强烈建议您查看https://github.com/Microsoft/Windows-universal-samples并查找示例关于 XAMLNavigation 它包括所有关于导航的问题。
当然,我建议您使用 MVVM 并绑定您想要存储的所有属性,例如联系人等。
【讨论】:
Juan Pablo 告诉您的关于使用 MVVM 的内容非常好!最好的方法是在离开时“存储/缓存” ViewModel,并在返回时再次检索它。
如果您不想为视图设置 NavigationCacheMode(因为设置它会占用更多内存),您可以使用 ListViewPersistenceHelper 来保留 ListView 滚动位置!
Shawn Skendrot 在他的博客http://visuallylocated.com/post/2015/07/23/Persist-ListView-scroll-position-without-setting-NavigationCacheMode.aspx 上有一个例子
【讨论】: