2011-07-21 25 views
0

私のアプリは1ページ、つまりMainPageしか持っていません。ユーザーがApplicationBarメニューから「新規」を選択すると、元のデータをクリアしてページをリロードするだけです。WP7のMainPageを再読み込みしてアプリを再起動

NavigationServiceでこれを行うことはできますか?

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

が、これはそう簡単に行うことができます、または私が移動する前に移動するには、2ページ目を作成する必要があります。メインページ自体の中から呼び出されたときに次の行は、AppのRootFrameで例外を失敗したナビゲーションを取得します私のメインページに戻る?

答えて

3

この目的のためにナビゲーションを使用すると、それを行う恐ろしい方法のように聞こえる!直面している問題の回避策として2ページ目を作成すると、それはバックスタックに残ります。つまり、ユーザーが戻るボタンを押したときに到達可能になります。

MVVMパターンを採用することをお勧めします(例hereを参照)。新しいボタンを押すと、新しいビューモデルが作成され、DataContextに設定されてMainPageに関連付けられます。これは、状態をクリアしてリセットすることに影響します。

+0

申し訳ありませんが、私は私が探しているものを明確にすべきだったと思います。私は2日後にデザイナーによって作成された既存のプロトタイプを持っており、データとリフレッシュ状態にフックするために1日もかからない。すべての制約を考えると、私はMVVMを使い始めることなく、これを行うための簡単な、おそらく恐ろしい方法を探しています。私は締め切りを迎えようとしているだけで、後はすべてのコードを捨てると約束します。 – Subcreation

+0

よく、よく - 私はこれが "正しい"と答えている限り、stackoverflowに関する限りです。ありがとう! – Subcreation

0

これは、コードにタイプミスがあった判明:

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

MainPage.xamlを目の前にあるスラッシュナビゲーションは、私が言及した例外を失敗しました修正。

もちろん、これはアプリがちょうど立ち上がったかのようにページを再読み込みしたり、ナビゲートして戻ったり戻ったりしても、まったく役に立ちませんでした。データをクリアしてUIをリフレッシュするのは簡単ではありませんでした(MVVMは必要ありませんでしたが、改善されるでしょう)。

リンクと正しい方向のナッジについては、ColinEさんに感謝します。

関連する問題