【问题标题】:How to resume a page which is already opened in WP7?如何恢复已在 WP7 中打开的页面?
【发布时间】:2011-09-14 05:09:33
【问题描述】:

如何恢复已在 WP7 中打开的页面?

例如:在 P1 中有两个按钮 A 和 B,当我单击 A 时,它会将我带到 P2,当我回到 P1 并再次单击 A 时它不起作用。但是在我单击 B 后,它会进入 P3 并返回到 P1 并单击 A 它的工作,但按钮 B 不是。

我了解该页面的一个实例已在后台运行。但不知道如何在再次单击按钮时恢复该页面。

任何人都可以帮助这里应该做什么?

【问题讨论】:

  • “不工作”表示您无法导航到该页面?
  • 这些“按钮”不在列表框中,对吗?
  • 实际上 A & B 是长列表选择器中的值,导航是在 Selection_changed 事件中完成的。我可以导航到该页面,但不能连续背靠背。
  • 看我贴的答案,我想它会解决你的问题
  • SelectionChanged 偶数处理程序上有什么代码?

标签: windows-phone-7 onresume


【解决方案1】:

当您通过SelectionChanged导航时,您需要重置SelectedIndex

public void SelectionChanged(object sender, SelectionChangedEventArgs e){

    var lb = (ListBox) sender;

    if (lb.SelectedIndex == -1) return;

    //do your logic here
    NavigationService.Navigate(///);

    //reset selected index
    lb.SelectedIndex = -1;

}

编辑:SelectedIndexLongListSelector 中不可用。请改用SelectedItem

void PersonSelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (buddies.SelectedItem == null) return;
            Person person = buddies.SelectedItem as Person;
            if (person != null)
            {
                NavigationService.Navigate(new Uri("/Samples/PersonDetail.xaml?ID=" + person.ID, UriKind.Relative));
            }

            buddies.SelectedItem = null;
        }

【讨论】:

  • 选择来自 LongListSelector 控件,我无法为此应用上述逻辑。你知道如何重置 LongListSelector 控件中的索引吗?
  • 您使用跳转列表导航到新页面?它应该用于“跳转”到列表中的项目。
  • 告诉我,如果没有我可以看看API
  • 嗨 - 不,我没有使用 Jumplist 之类的东西。当在 P1 的 LonglistSelector 中选择一个值时,我只是导航到一个页面(P2)。还在导航服务链接中传递在 P1 中选择的值。我希望这很清楚。我真的很感谢你的帮助!谢谢
  • @Sri 查看我更新的帖子。刚刚用 LongListSelector 试了一下。 (取自 Toolkit 示例)
【解决方案2】:

使用

NavigationService.Navigate(new Uri("/P2.xaml", UriKind.Relative));

鉴于 P2.xaml 是您的 P2 页面,导航到 P2。

【讨论】:

  • 嗨,我可以使用上面的代码导航到页面,但问题不是这样。无论如何感谢您的回复!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-06-09
  • 2014-01-19
  • 1970-01-01
  • 2021-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多