0

ページに値を渡します

NavigationService.Navigate("/SportsPage.xaml?Number=5",UriKind.Relative);

ユーザーがページにいる間にNumber値が変化します。たとえば、10 になります。その後、彼は別のページに移動しますが、そのページからこのページに戻った後も、最初と同じように番号は 5 のままです。しかし、ユーザーがページを離れたときの数字(つまり10)にしたいです。

ストレージに保存して、navigationTo で取得できますが、そうではありません。

ページを最後の状態に戻すことはできますか?

4

2 に答える 2

2

戻るボタンを押すと、ページは最後の状態に戻ります。問題は、ページに戻るときに OnNavigatedTo イベントがもう一度実行されることです。そのため、変数の値を上書きしないように注意する必要があります。

基本的に、コードは次のようなものです。

protected virtual void OnNavigatedTo(NavigationEventArgs e)
{
    this.Number = this.NavigationContext.QueryString["Number"];
}

次のように変更する必要があります。

protected virtual void OnNavigatedTo(NavigationEventArgs e)
{
    if (e.NavigationMode != System.Windows.Navigation.NavigationMode.Back)
    {
         this.Number = this.NavigationContext.QueryString["Number"];
    }
}

このようにして、ページに戻ったときに変数の最後の値を上書きすることはありません。

于 2013-08-02T11:47:02.243 に答える
0

次のように App.xaml.cs でグローバル変数を作成できます。

public int Number { get; set; }.

そして、次を使用して操作します。

(App.Current as App).Number = 5;
于 2013-08-02T11:47:54.277 に答える