2012-09-13 55 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