2015-02-11 69 views
1

我用我的WP8.1應用程序得到了一個問題。我有一個listView,當我點擊item時,它會讓我到一個新的頁面,但當我回到我的listView時,我可以重複使用相同的項目,但它不會讓我到任何地方。無法返回到同一頁面兩次。 c#Windows Phone 8.1

這是我在mainPage.xaml.cs中的listView SelectionChanged處理程序。

private void lvNom_SelectionChanged(object sender, SelectionChangedEventArgs e) 
    { 
     Person personneSelect = (Person)lvNom.SelectedItem; 
     Frame.Navigate(typeof(DetailPersonne), personneSelect);  
    } 

這裏是我需要DetailPersonne.xaml.cs顯示頁面後面的代碼

public sealed partial class DetailPersonne : Page 
{ 
    public Person person; 
    public DetailPersonne() 
    { 
     this.InitializeComponent(); 

    } 
    protected override void OnNavigatedTo(NavigationEventArgs e) 
    { 
     person = e.Parameter as Person; 

     if(string.IsNullOrEmpty(person.Nom) == true){ 
      tbNom.Text = "Non renseigné."; 
     } 
     else{ 
      tbNom.Text = person.Nom; 
     } 
     if (string.IsNullOrEmpty(person.Prenom) == true) 
     { 
      tbPrenom.Text = "Non renseigné."; 
     } 
     else{ 
     tbPrenom.Text = person.Prenom; 
     } 

唯一的導航改變我所做的就是處理硬件後退按鈕在我的App.xaml .cs

public App() 
    { 
     this.InitializeComponent(); 
     this.Suspending += this.OnSuspending; 
     HardwareButtons.BackPressed += HardwareButtons_BackPressed; 
    } 
    void HardwareButtons_BackPressed(object sender, BackPressedEventArgs e) 
    { 
     Frame rootFrame = Window.Current.Content as Frame; 
     if(rootFrame != null && rootFrame.CanGoBack) 
     { 
      e.Handled = true; 
      rootFrame.GoBack(); 
     } 
    } 

因此,如果有人得到了一個修復,它會很好!提前致謝 ! :)

回答

0

嘗試將所選項目重置爲SelectionChanged未點燃,因爲選擇沒有改變,當您回到導航。

private void lvNom_SelectionChanged(object sender, SelectionChangedEventArgs e) 
    { 
     if(lvNom.SelectedItem != null) 
     { 
      Person personneSelect = (Person)lvNom.SelectedItem; 
      lvNom.SelectedItem = null; 
      Frame.Navigate(typeof(DetailPersonne), personneSelect); 
     }  
    } 
+0

還有可能需要在事件內部檢查* null *,因此您將null置於* SelectedItem *,它將觸發* SelectionChanged *並可能拋出nullreference異常。 – Romasz 2015-02-11 09:43:17

+0

@Romasz謝謝。更新我的回答 – user1 2015-02-11 09:45:51

+0

感謝您的回答! – Erunayc 2015-02-12 10:53:44