5

私はWindows 8アプリを開発しており、次のページ、次のコードで送信ボタンがある連絡先ピッカーページがあります

 customContact = (CustomContacts)contactView.SelectedItem;   
 this.Frame.Navigate(typeof(AddTask), customContact);

私のAddTaskページには次のメソッドがあります

 protected  override void OnNavigatedTo(NavigationEventArgs e)
    { if (e.Parameter == null)
        {code logic }}

onnavigatedfrom イベントで PageKey が null であるため、ボタンのクリック中にレイアウト対応ページでエラーが発生するようになりました

  protected override void OnNavigatedFrom(NavigationEventArgs e)
    {                    
        var frameState = SuspensionManager.SessionStateForFrame(this.Frame);
        var pageState = new Dictionary<String, Object>();
        this.SaveState(pageState);          
        frameState[_pageKey] = pageState;
    } 

助けてください

4

1 に答える 1

9

_pageKeyに値が設定されていLayoutAwarePage.OnNavigatedToます。OnNavigatedTo基本実装を呼び出さずに自分のページでオーバーライドしたため、LayoutAwarePage設定のコード_pageKeyが呼び出されることはありません。

メソッドをオーバーライドするときは、そうしない理由がよくわかっていない限り、常にその基本実装を呼び出す必要があります。への呼び出しを追加するとbase.OnNavigatedTo(e)、問題が解決するはずです。

protected override void OnNavigatedTo(NavigationEventArgs e)
{ 
    base.OnNavigatedTo(e);
    if (e.Parameter == null)
    {
        // code logic 
    }
}
于 2013-05-23T04:31:06.463 に答える