2014-11-11 2 views
0

현재 xaml 페이지의 목록 상자 항목을 클릭하면 다른 xaml 페이지로 이동하려고합니다. 여기 내가 어떻게 한거야.Windows Mobile에서 다른 xaml 페이지로 이동하는 방법

private void mainList_SelectionChanged(object sender, SelectionChangedEventArgs e) 
    { 
     if (mainList.SelectedIndex == -1) 
      return; 

     NavigationService.Navigate(new Uri("/RegisterSurveyee.xaml",UriKind.Relative)); 
    } 

하지만 "NULLREFERENCEEXCEPTION"오류가 발생합니다. groupID groupName이 (가) null이 아닙니다. 마지막 문장을 this.Content = new RegisterSurveyee()로 변경하면 올바르게 작동합니다. 이 문제는 NavigationService.Navigate에서만 발생합니다 (새 Uri ("/ RegisterSurveyee.xaml", UriKind.Relative)). 어떤 도움 ???

+2

null 참조가 예외를 던지는 위치를 확인하려면 코드를 디버깅해야합니다. 메서드에 중단 점을 배치하고 단계별로 실행합니다. 추가 된 항목이 SurveyWindowsPhone.Tables.SurveyGroup 유형이 아니므로 캐스팅이 실패 할 수 있습니다. 내 직감은 그것이 당신이 그룹 ID를 설정하고있는 곳이라는 것입니다. – FunksMaName

+0

[NullReferenceException은 무엇이며 어떻게 수정합니까?] (http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-how-do-i-fix-it) 가능한 중복 – Will

답변

0

I) e.AddedItems[0]가 null는 아니고, 당신이 null 참조 예외를 받고있는 경우는 유형 SurveyGroup

의 있는지 확인,

if (mainList ==null || mainList.SelectedIndex == -1) 
      return; 

II) 한 페이지에서 다른 페이지로 이동할 때, 당신은 .xaml 확장명을 포함한 전체 이름을 지정하십시오.

NavigationService.Navigate(new Uri("/RegisterSurveyee.xaml",UriKind.Relative)); 

NullReference 예외가 계속 발생하면 Page의 Loaded 이벤트에 대한 SelectionChanged 이벤트입니다.

private void MainPage_OnLoaded(object sender, RoutedEventArgs e) 
    { 
     ListBox.SelectionChanged += ListBoxSelectionChanged; 
    } 
+0

내 편집을 참조하십시오. – casper

+0

올바른 유형의 캐스팅 유형인지 확인하십시오. SurveyGroup –

+0

다른 줄을 제거하면 문제가 지속됩니다 !!! – casper

관련 문제