0

私は少し単純な問題を抱えています。おもう。

2番目が最初からの選択に依存するリストピッカーを使用する必要があります。最初の Listpicker で selectionchanged を使用して簡単に実行でき、選択されたインデックスを取得できると考えました。

<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>

そして選択のためのコードが変更されました:

private void customers_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {

        int selindex = customers.SelectedIndex;

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

私の問題は、selindex が常に -1 に等しく、範囲外の例外が発生することです。これを解決する最善の方法は何ですか?

4

1 に答える 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();
}
于 2012-09-13T13:31:30.697 に答える