2011-08-17 4 views
0

Windows Phone 7 용 앱을 프로그래밍 중이며 다른 페이지의 이름 인 내 항목이 모두 들어있는 목록 상자가 있습니다. O 항목을 탭하면 페이지로 이동해야하지만 전화를 누르면 오류가 발생합니다. 내 응용 프로그램에서 같은 일을이다,목록 상자 Windows Phone 7의 선택된 항목

private void NavigateToPages_Click(object sender, EventArgs e) 
    { 
     if (listBox1.SelectedItem == null) {} 
     else 
     { 
      string uri = listBox1.SelectedItem.ToString(); 

      switch (uri) 
      { 
       case "Quadratic Eq.": 
        Navigate("/Pages/EQ.xaml"); 
        break; 
       case "Average": 
        Navigate("/Pages/Average.xaml"); 
        break; 
       case "Pythagoras": 
        Navigate("/Pages/pythagoras.xaml"); 
        break; 
       case "Trigonometry": 
        Navigate("/Pages/Trigon.xaml"); 
        break; 
       case "Percentage": 
        Navigate("/Pages/Percentoff.xaml"); 
        break; 
       case "Prime Number": 
        Navigate("/Pages/prime.xaml"); 
        break; 
       case "Factorize": 
        Navigate("/Pages/Factorize.xaml"); 
        break; 
       case "GCD & LCD": 
        Navigate("/Pages/GG.xaml"); 
        break; 
       default: 
        MessageBox.Show("Select a function!"); 
        break; 
      } 
     } 

그것은 나 기능을 선택 제공하지만, 나는 항목을 선택한 :

내 코드입니다. 권한 이벤트가 없기 때문에이 코드를 작성했습니다. 목록 상자 항목

+2

포스트는 점점 오류. – Tejs

답변

3

사용중인 방법이 아닌 SelectionChanged 이벤트가 ListBox이어야합니다. XAML에서

:

<ListBox SelectionChanged="ListBoxSelectionChanged" > 

     </ListBox> 

당신의 xaml.cs의 파일 : 대상 페이지 목록 항목에서 이미 있도록

private void ListBoxSelectionChanged(object sender, SelectionChangedEventArgs e) 
      { 
       ListBox lb = ((ListBox) sender); 
       if (lb.SelectedIndex == -1) 
        return; 

string uri = lb.SelectedItem.ToString(); 

      switch (uri) 
      { 
       case "Quadratic Eq.": 
        Navigate("/Pages/EQ.xaml"); 
        break; 
       case "Average": 
        Navigate("/Pages/Average.xaml"); 
        break; 
       case "Pythagoras": 
        Navigate("/Pages/pythagoras.xaml"); 
        break; 
       case "Trigonometry": 
        Navigate("/Pages/Trigon.xaml"); 
        break; 
       case "Percentage": 
        Navigate("/Pages/Percentoff.xaml"); 
        break; 
       case "Prime Number": 
        Navigate("/Pages/prime.xaml"); 
        break; 
       case "Factorize": 
        Navigate("/Pages/Factorize.xaml"); 
        break; 
       case "GCD & LCD": 
        Navigate("/Pages/GG.xaml"); 
        break; 
       default: 
        MessageBox.Show("Select a function!"); 
        break; 
      } 


       lb.SelectedIndex = -1; 
      } 
+0

willmel SeletedIndex로 SelectedItem을 변경해 주셔서 감사합니다. – user899317

+0

멋지다면 목록 자체가 아닌 탐색 버튼을 사용하고 있는지 확인해야합니다. 항목을 클릭 한 다음 즉시 페이지로 이동하면 훨씬 더 일반적인 패러다임이됩니다. –

1

당신이 하이퍼 링크 컨트롤을 사용합니다. 또한 동적 데이터 소스에 바인딩 할 수 있습니다. 예를 들어

:

      <HyperlinkButton NavigateUri="/Factorize.xaml" 
             Style="{StaticResource HyperlinkEmptyStyle}" 
             DataContext="{Binding}"> 
          <localControls:HeaderedContentControl Style="{StaticResource MultilineHyperlinkStyle}" 
                    Header="{Binding Resources.menu_01}" 
                    Content="{Binding Resources.menu_02}"/> 
         </HyperlinkButton> 
관련 문제