2011-07-21 179 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的正確方向的鏈接和微調。