2

2つのページ(main.xamlとpage1.xaml)があります。ホームページでボタンをクリックするとpage1.xamlが表示されます。page1でバックキーを押し、すぐにスタートボタンを押します。アプリは休止状態になります。ここでアプリを再開しますonNavigateFromが最初に呼び出されます。onNavigateFromメソッドでStateを使用したため、invalidoperation例外が発生します。

誰かがこれを回避することを知っていましたか。以下のコードを貼り付けました

public partial class Page1 : PhoneApplicationPage
{
    public Page1()
    {
        InitializeComponent();
    }
    protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
    {
        base.OnNavigatedTo(e);
    }
    protected override void OnNavigatedFrom(System.Windows.Navigation.NavigationEventArgs e)
    {
        base.OnNavigatedFrom(e);
        if (State.ContainsKey("test"))
        {

        }
    }
    protected override void OnBackKeyPress(System.ComponentModel.CancelEventArgs e)
    {
        base.OnBackKeyPress(e);
      //  Thread test = new Thread();
        Thread.Sleep(1000);
    }
}
4

1 に答える 1

0

「状態」を使用している行の前にこの行を追加することで、問題を解決できます。

if(e.NavigationMode != System.Windows.Navigation.NavigationMode.Back)

しかし、実際の問題はここでは解決されません。つまり、再開後、Page1 から MainPage に戻ることはできません。これは、BackStack が前の BackKeyPress によって削除されているためです。

于 2012-06-02T18:51:53.497 に答える