首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Backstack Tombstone wp7

Backstack Tombstone wp7
EN

Stack Overflow用户
提问于 2012-05-29 21:12:45
回答 1查看 480关注 0票数 0

我刚刚在应用程序中完成了对页面的逻辑删除,这时我注意到我只对当前正在查看的页面进行了逻辑删除,这意味着在我返回后栈中的页面将失去所有成员,并且不会被逻辑删除。我只找到了关于如何对当前页面进行tomstone的示例,但没有找到关于对backstack页面进行tomstone的示例……做这件事最优雅的方式是什么?

只是为了展示我是如何进行墓碑测试的:

代码语言:javascript
复制
protected override void OnNavigatedTo(NavigationEventArgs e)
{
    if (e.IsNavigationInitiator == false)
    {
        _tombstone = this.LoadState<Tombstone>("tombstone");
    }
    else
    {
        _tombstone.NavigationParameters = NavigationParameters;
    }
}


protected override void OnNavigatedFrom(NavigationEventArgs e)
{
    if (_tombstone != null && e.IsNavigationInitiator == false)
        this.SaveState("tombstone", _tombstone);
}

    public static void SaveState(this PhoneApplicationPage phoneApplicationPage, string key, object value)
    {
        if (phoneApplicationPage.State.ContainsKey(key))
        {
            phoneApplicationPage.State.Remove(key);
        }

        phoneApplicationPage.State.Add(key, value);
    }

_tombstone包含当前页面的所有重要成员,我需要这些成员在逻辑删除后重新初始化页面

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-30 17:16:45

你应该在你离开时保存每个页面的数据(如果NavigationMode != Back),因为你不会知道它,当应用程序在另一个页面上时,你将无法访问堆栈中的其他页面。

或者,您可以集中存储所有内容(使用超级视图模型),并在应用程序级别处理状态持久性。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10799901

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档