【问题标题】:Universal App - restore view state in splitview navigation通用应用程序 - 在拆分视图导航中恢复视图状态
【发布时间】:2015-08-22 17:06:48
【问题描述】:

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

【问题讨论】:

    标签: xaml win-universal-app


    【解决方案1】:

    最后,简单的方法是使用

    NavigationCacheMode = NavigationCacheMode.Enabled
    

    在页面后面的代码中。

    【讨论】:

      【解决方案2】:

      您应该在SplitView的Content中使用一个Frame,当您返回时它会以相同的信息恢复以前的内容,我强烈建议您查看https://github.com/Microsoft/Windows-universal-samples并查找示例关于 XAMLNavigation 它包括所有关于导航的问题。

      当然,我建议您使用 MVVM 并绑定您想要存储的所有属性,例如联系人等。

      【讨论】:

      • 我看看样本。特别是 XAMLNavigation 示例。 Drill in page demo 是我想要做的一个完美的例子:当你选择最后一个项目,然后返回,“状态”不一样
      • 如果您想在无法导航的控件中保持完全相同的状态,则必须删除一个 Grid 控件,例如具有 Content1 的控件,并添加具有 Content2 但没有导航的 Second Grid 控件。
      【解决方案3】:

      Juan Pablo 告诉您的关于使用 MVVM 的内容非常好!最好的方法是在离开时“存储/缓存” ViewModel,并在返回时再次检索它。

      如果您不想为视图设置 NavigationCacheMode(因为设置它会占用更多内存),您可以使用 ListViewPersistenceHelper 来保留 ListView 滚动位置!

      Shawn Skendrot 在他的博客http://visuallylocated.com/post/2015/07/23/Persist-ListView-scroll-position-without-setting-NavigationCacheMode.aspx 上有一个例子

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-12-02
        • 1970-01-01
        • 1970-01-01
        • 2017-09-13
        • 2012-02-07
        • 1970-01-01
        相关资源
        最近更新 更多