2012-09-13 74 views
0

我有我小而簡單的問題。我認爲。WP7 listpicker選擇changed selectedindex返回-1

我必須Listpickers第二個取決於從第一個選擇。 我以爲我可以很容易地使用第一個Listpicker上的choosechanged來完成,然後得到選定的索引。

<toolkit:ListPicker ExpansionMode="FullScreenOnly" Grid.Row="0" Name="customers" FullModeHeader="Kunder" Margin="10,50,10,10" Width="350" HorizontalAlignment="Left" SelectionChanged="customers_SelectionChanged"> 
     <toolkit:ListPicker.ItemTemplate> 
       <DataTemplate> 
        <StackPanel Orientation="Horizontal"> 
          <TextBlock Text="{Binding Title}" Margin="12,0,0,0"></TextBlock> 
        </StackPanel> 
       </DataTemplate> 
     </toolkit:ListPicker.ItemTemplate> 
     <toolkit:ListPicker.FullModeItemTemplate> 
      <DataTemplate> 
        <StackPanel Orientation="Horizontal" Margin="16,20,0,20"> 
         <TextBlock Text="{Binding Title}" Margin="16,0,0,0" FontSize="30" FontFamily="{StaticResource PhoneFontFamilyLight}"></TextBlock> 
        </StackPanel> 
      </DataTemplate> 
     </toolkit:ListPicker.FullModeItemTemplate> 
</toolkit:ListPicker> 

而對於的SelectionChanged代碼:

private void customers_SelectionChanged(object sender, SelectionChangedEventArgs e) 
    { 

     int selindex = customers.SelectedIndex; 

     MessageBox.Show("index : " + selindex); 
     Guid costumerid = customers[selindex].id; 
     Loadprojects(); 
    } 

我的問題是selindex總是等於-1,然後我得到一個超出範圍的異常。 解決此問題的最佳方法是什麼?

回答

1
private void customers_SelectionChanged(object sender, SelectionChangedEventArgs e) 
{ 

    int selindex = customers.SelectedIndex; 
    if (selindex==-1) return; 
    MessageBox.Show("index : " + selindex); 
    Guid costumerid = customers[selindex].id; 
    Loadprojects(); 
} 
+0

Doh。當然,爲什麼我沒有想到這一點。謝謝你的時間。 – freddy