Windows phone 7 背靠背墓碑wp7

Windows phone 7 背靠背墓碑wp7,windows-phone-7,back-stack,tombstone,Windows Phone 7,Back Stack,Tombstone,我刚刚在应用程序中完成了一个页面的删除,这时我注意到我只删除了我当前查看的页面,这意味着在我返回backbackback中的页面后,会丢失其所有成员,并且不会删除。。我只找到了如何删除当前页面的示例,但没有找到任何关于删除后台页面的示例。。。做这件事的优雅方式是什么 只是为了展示我是如何墓碑: protected override void OnNavigatedTo(NavigationEventArgs e) { if (e.IsNavigationInitiator == fals

我刚刚在应用程序中完成了一个页面的删除,这时我注意到我只删除了我当前查看的页面,这意味着在我返回backbackback中的页面后,会丢失其所有成员,并且不会删除。。我只找到了如何删除当前页面的示例,但没有找到任何关于删除后台页面的示例。。。做这件事的优雅方式是什么

只是为了展示我是如何墓碑:

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);
    }
受保护的覆盖无效OnNavigatedTo(NavigationEventArgs e)
{
如果(如IsNavigationInitiator==false)
{
_墓碑=此.LoadState(“墓碑”);
}
其他的
{
_tombstone.NavigationParameters=NavigationParameters;
}
}
受保护的覆盖无效OnNavigatedFrom(NavigationEventArgs e)
{
if(_tombstone!=null&&e.IsNavigationInitiator==false)
this.SaveState(“墓碑”),\u墓碑);
}
公共静态void保存状态(此PhoneApplicationPage PhoneApplicationPage,字符串键,对象值)
{
if(phoneApplicationPage.State.ContainsKey(键))
{
phoneApplicationPage.State.Remove(键);
}
phoneApplicationPage.State.Add(键、值);
}

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

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


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

您使用什么来保存状态?这就是墓碑
\u
SaveState()
做了什么?这就是我目前的想法,但资源不是很重吗?你可以在#cougcough的源代码中查看演示应用程序