2015-08-22 66 views
1

当用户选择返回时,恢复视图“状态”的最佳方法是什么?例如,第一视图“UserList”女巫包含许多联系人的列表视图,而第二视图包含联系人详细信息。当用户返回到“UserList”视图时如何检索状态(包括滚动视图位置等)?Universal App - 在分割视图导航中恢复视图状态

回答

0

您应该在SplitView的内容中使用框架,当您返回时它将使用相同的信息恢复以前的内容,我强烈建议您看看https://github.com/Microsoft/Windows-universal-samples并查找有关XAMLNavigation包含有关导航的所有内容。

除了我当然建议你使用MVVM并绑定所有要像存储联系人的属性等

+0

我看看样品中。特别是XAMLNavigation示例。在页面演示中进行钻取是一个完美的例子,当您选择最后一个项目并在此之后返回时,“状态”不一样 – BobyOneKenobi

+0

如果您想在控件中使用完全相同的状态,则无法导航必须使用Content1删除一个网格控件,并将第二个网格控件与Content2一起添加,但不能导航。 –

1

最后,简单的方法是在代码中使用

NavigationCacheMode = NavigationCacheMode.Enabled 

在页面后面。

0

胡安·巴勃罗告诉你关于使用MVVM的一个好主意!最好的方法是在导航时“存储/缓存”ViewModel,然后再导航回去。

如果你不想为你的视图设置NavigationCacheMode(因为设置这将获得更多的内存),你可以使用ListViewPersistenceHelper来保留L​​istView的滚动位置!

这样一个例子是在向上肖恩Skendrot他的博客在这里http://visuallylocated.com/post/2015/07/23/Persist-ListView-scroll-position-without-setting-NavigationCacheMode.aspx