2013-05-22 11 views
5

Zajmuję się tworzeniem aplikacji Windows 8 i mam następnej stronie stronę kontakt kompletacji gdzie mam przycisk submit z następującego koduPagekey staje się zerowa w OnNavigatedFrom w layoutawarepage

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

moja strona AddTask ma follwoing metodę

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

teraz otrzymuję błąd w układzie świadomy stronie podczas kliknięcia przycisku jako PageKey jest nieważna w przypadku onnavigatedfrom jako taki

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

Pls mi pomóc

Odpowiedz

9

_pageKey wartość jest ustawiona w LayoutAwarePage.OnNavigatedTo. Ponieważ przesłoniłeś OnNavigatedTo na swojej własnej stronie bez wywoływania implementacji podstawowej, kod w ustawieniu LayoutAwarePage ustawienie _pageKey nigdy nie zostanie wywołany.

Podczas przesłaniania metody zawsze powinieneś wywoływać jej podstawową implementację, chyba że dobrze wiesz, dlaczego tego nie robisz. Dodanie połączenia pod numer base.OnNavigatedTo(e) powinno rozwiązać Twój problem:

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