2011-08-31 50 views
1

我有一個列表框,當點擊列表項時,它會轉到它的詳細頁面。當我從詳細信息頁按下後退鍵時,如果再次單擊銷售清單項目不會導航到詳細信息頁面,但如果我單擊列表中的其他項目,它將導航到相應的詳細信息頁面。 其實我不重新加載列表框後退鍵按下。我只是彈出它從後面stack.if我重新加載列表框中的問題不存在。是否有任何解決方案這個問題。下面是我的代碼。列表框項目問題,當使用後退鍵導航

ListViewPage

protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e) 
{ 
    if (DetailPage.isBackkeyPressed && list != null) 
    { 
     DetailPage.isBackkeyPressed = false; 
    } 
    else 
    { 
     ListDetails(); //Reloading the page if list is empty 
    } 

    base.OnNavigatedTo(e); 
} 

private void listBox_SelectionChanged(object sender, SelectionChangedEventArgs e) 
{ 
    if (listBox.SelectedIndex >= 0) 
    { 
     (Application.Current as App).obj_list = list[listBox.SelectedIndex]; 
     NavigationService.Navigate(new Uri("/DetailPage.xaml", UriKind.Relative)); //Navigate to detail page 
    } 
} 

DetailPage

protected override void OnBackKeyPress(System.ComponentModel.CancelEventArgs e) 
{ 
    isBackkeyPressed = true;//flag for check if back key is pressed 
    base.OnBackKeyPress(e); 
} 

回答

2

您需要取消設置SelectedIndex,通過將其設定-1,就像這樣:

private void listBox_SelectionChanged(object sender, SelectionChangedEventArgs e) 
{ 
    if (listBox.SelectedIndex >= 0) 
    { 
     (Application.Current as App).obj_list = list[listBox.SelectedIndex]; 
     NavigationService.Navigate(new Uri("/DetailPage.xaml", UriKind.Relative)); //Navigate to detail page 

     listBox.SelectedIndex = -1; 
    } 
} 
+1

或者在每個項目上處理的點擊事件(在ItemTemplate中設置)而不是處理SelectionChanged。 –

+0

謝謝克勞斯現在的工作非常感謝 – Sujiz

+0

無法爲tap處理程序執行命令綁定;-)(但對於SelectionChanged,可以使用ToolkitExtensions http://nuget.org/List/Packages/ToolkitExtensions) –