2013-03-07 122 views
0

我的問題是,我有一個列表。當我長按列表中的特定項目時,它會打開一個上下文菜單,當我點擊上下文菜單中的一個菜單項時,它會打開一個彈出窗口,所以按下硬件後退按鈕我希望我再次返回列表。 所以這樣做我的代碼是:後退按鈕處理wp7

protected override void OnBackKeyPress(object sender,System.ComponentModel.CancelEventArgs e) 
    { 
     if (calendarDescripton.Visibility == Visibility.Visible) 
     { 
      calendarDescripton.Visibility = Visibility.Collapsed; 
      e.Cancel = true; 
     } 

    } 

使用此代碼,當我點擊打開的列表按鈕後,退出應用程序,它不會打開清單也。

回答

0

我認爲首先應該取消導航,然後再進行其他更改。試試這個

protected override void OnBackKeyPress(object sender,System.ComponentModel.CancelEventArgs e) 
{ 
    if (calendarDescripton.Visibility == Visibility.Visible) 
    { 
     e.Cancel = true; 
     calendarDescripton.Visibility = Visibility.Collapsed; 
    } 
} 

如果這沒有幫助,放置一個破PIONT在if條件,並檢查它是否在,如果還是不

內進入如果斷點未命中,意味着您的導航方法有問題。

如果您使用NavigationService.Navigate()方法進行頁面導航,它應該可以工作。 否則,如果您正在使用 App.Current.RootVisual = new MyPage();,則不能覆蓋BackKey。

+0

沒有它的不工作ñ調試點也ntwbacking onbackkeyopress方法 – sonia 2013-03-07 09:12:06

+0

你檢查我更新的答案? – nkchandra 2013-03-13 15:57:15