2014-04-07 2 views
1

xaml 코드에 ListPicker가 있고 ListPickerItem 이상이 포함되어 있으며 ListPickerItem이 선택된 위치에 따라지도에 압정을 표시하려고합니다. 내 XAML의ListPickerItem을 기반으로 함수를 수행하는 방법 Windows Phone에서 선택 8

: 여기

<toolkit:ListPicker Foreground="white" Opacity="0.9" x:Name="OptionSelection" Margin="0,18,0,0" SelectionChanged="Picker"> 
        <toolkit:ListPickerItem Tag="1" x:Name="Option1" Content="Item1"/> 
        <toolkit:ListPickerItem Tag="2" x:Name="Option2" Content="Item2"/> 
        <toolkit:ListPickerItem Tag="3" x:Name="Option3" Content="Item3"/> 
       </toolkit:ListPicker> 

그리고이 인 selectionchanged 이벤트에 대한 내 CS 코드 :

private void Picker(object sender, SelectionChangedEventArgs e) 
     { 

      var tag = ((ListPickerItem)OptionSelection.SelectedItem).Tag; 

      if (tag.Equals(1)) 
      { 
       MessageBox.Show("Item1 selected"); //I will replace this with my geolocation function later. 
      } 

     } 

은 주로 내 코드에 if 문에 적용하는 방법을 알고 싶어, 그 도움이 될 것입니다 선택한 항목을 기반으로 Geolocation 함수를 추가합니다.

+0

여기에서 문제가 발생합니까? – Sajeetharan

+0

여기에 자세한 내용이 나와 있습니다. DataBoundApp3.DLL에서 'System.NullReferenceException'유형의 예외가 발생했지만 사용자 코드에서 처리되지 않았습니다. 추가 정보 : 개체 참조가 개체의 인스턴스로 설정되지 않았습니다. – user3269487

답변

0

사용자의 선택에 따라 코드를 실행할 수 귀하의 if 문은이 경우 Tag의 값을 제외하고 대신 정수의 다른 문자열 ("1") (1)에 비해 했어야 있도록하는 문자열입니다, 잘 보인다.

SelectedItem 값이 null 일 때 예외가 발생했습니다. 함수 시작 부분에 간단한 점검을 추가하여이 조건을 올바르게 처리하고 NullReferenceException을 피할 수 있습니다.

private void Picker(object sender, SelectionChangedEventArgs e) 
{ 
    if(OptionSelection.SelectedItem == null) 
    { 
     //do some logic to handle null condition 
     //or simply exit the function if there is no logic to be done : 
     return; 
    } 
    var tag = ((ListPickerItem)OptionSelection.SelectedItem).Tag; 
    //value of Tag is a string according to your XAML 
    if (tag.Equals("1")) 
    { 
     MessageBox.Show("Item1 selected"); 
    } 
} 
+0

문제의 절반이 해결 된 것 같습니다! 글쎄, 그건 지금 나에게 OptionSelection = Null (편집하지 않고 당신의 코드) 예외를 준다. – user3269487

+0

if (OptionSelection.SelectedItem == null) with : if (OptionSelection == null) 도와주세요! – user3269487

+0

당신을 환영합니다! 이 대답을 받아들이는 것을 잊지 마세요. 추가 정보 : [대답을 수락하는 방법은 무엇입니까?] (http://meta.stackexchange.com/a/5235) – har07