2013-05-22 19 views
5

Tôi đang phát triển một ứng dụng Windows 8 và tôi có trang sau, một trang bảng chọn liên hệ nơi tôi có một nút gửi với đoạn mã sauPagekey trở thành null trong OnNavigatedFrom trong layoutawarepage

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

trang AddTask tôi có phương pháp

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

follwoing bây giờ tôi đang nhận được một lỗi trong cách bố trí trang ý thức trong nút bấm như PageKey là null trong trường hợp onnavigatedfrom của nó như vậy

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

Xin vui lòng giúp tôi ra

Trả lời

9

_pageKey giá trị đã được thiết lập trong LayoutAwarePage.OnNavigatedTo. Vì bạn đã ghi đè số OnNavigatedTo trong trang của riêng bạn mà không cần gọi triển khai cơ sở, mã trong thiết lập LayoutAwarePage_pageKey không bao giờ được gọi.

Khi ghi đè phương thức, bạn nên luôn gọi phương thức triển khai cơ sở của mình trừ khi bạn biết rõ lý do tại sao bạn không thực hiện. Thêm cuộc gọi đến base.OnNavigatedTo(e) sẽ khắc phục sự cố của bạn:

protected override void OnNavigatedTo(NavigationEventArgs e) 
{ 
    base.OnNavigatedTo(e); 
    if (e.Parameter == null) 
    { 
     // code logic 
    } 
} 
Các vấn đề liên quan