2011-07-21 149 views
0

我的应用程序只有一个页面 - MainPage。当用户从ApplicationBar菜单中选择“新建”时,我真正想要做的就是清除源数据并重新加载页面。重新加载WP7中的MainPage以重新启动应用程序

我可以使用NavigationService来做到这一点吗?下面这行获取该App的RootFrame未能例外导航从的MainPage本身调用时:

this.NavigationService.Navigate(new Uri("MainPage.xaml", UriKind.Relative)); 

可以这样所以很容易做到,或者我需要创建第二个页面导航之前导航到回到我的MainPage?

回答

3

为此目的使用导航听起来像是一种可怕的方式!如果您创建第二页作为您面临的问题的解决方法,它将保留在后备栈上,这意味着当用户点击后退按钮时它将可到达。

我会建议采用MVVM模式(请参阅示例here)。当按下新按钮时,只需创建一个新的视图模型并将其与您的MainPage关联即可,将其设置为DataContext,这会影响您希望清除和重置状态。

+0

对不起,我想我应该更清楚我在找什么。我有一个由设计师在2天内创建的现有原型,并且我有不到一天的时间将它连接到数据和刷新状态。考虑到所有的约束条件,我只是寻找一种简单的*可能很糟糕的方式来完成这个过程,而不用重新开始MVVM。我保证只会在最后期限之前完成任务,并且会抛弃所有的代码。 – Subcreation

+0

好吧,好吧 - 我想这是“正确的”答案,就stackoverflow而言。谢谢! – Subcreation

0

原来有代码中的一个错字:

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

在MainPage.xaml中前面的斜线矫正导航未能例外,我提到。

而且,当然,这并没有帮助重新加载页面,就好像该应用刚刚启动一样,也没有导航和返回。清除数据并刷新UI是微不足道的,也是正确的事情(MVVM不是必需的,尽管它会有所改进)。

感谢ColinE的正确方向的链接和微调。