2013-07-01 3 views
1

Я использую этот код для создания listpicker в телефоне Windows.Как получить выбранный элемент из списка в телефоне Windows 8?

<StackPanel Height="148" Margin="0,100,0,0"> 
    <toolkit:ListPicker Grid.Row="0" FontFamily="Segoe WP Semibold" Height="176" x:Name="Additional_Time" ItemTemplate="{StaticResource PickerItemTemplate}" FullModeItemTemplate="{StaticResource PickerFullModeItemTemplate}" FullModeHeader="Cities" SelectedIndex="0" CacheMode="BitmapCache" Header="Choose Exit Time" FontSize="30" SelectionChanged="Additional_Time_SelectionChanged"/> 
</StackPanel> 

и использовать эти сетевых ресурсы

<Grid.Resources> 
     <DataTemplate x:Name="PickerItemTemplate"> 
      <StackPanel Orientation="Horizontal"> 
       <Border Background="LightGreen" Width="34" Height="34"> 
        <TextBlock Text="{Binding Country}" FontSize="16" HorizontalAlignment="Center" VerticalAlignment="Center"/> 
       </Border> 
       <TextBlock Text="{Binding Name}" Margin="12 0 0 0"/> 
      </StackPanel> 
     </DataTemplate> 
     <DataTemplate x:Name="PickerFullModeItemTemplate"> 
      <StackPanel Orientation="Horizontal" Margin="16 21 0 20"> 
       <TextBlock Text="{Binding Name}" Margin="16 0 0 0" FontSize="43" FontFamily="{StaticResource PhoneFontFamilyLight}"/> 

       <TextBlock Text="{Binding Language}" Foreground="Green"/> 
      </StackPanel> 
     </DataTemplate> 
    </Grid.Resources> 

Ниже код для вставки элемента в listpicker

List<Cities> source = new List<Cities>(); 
     //List<Items> source = new List<Items>(); 
     source.Add(new Cities() { Name = " 00 : 30 " }); 
     source.Add(new Cities() { Name = " 01 : 00 " }); 
     source.Add(new Cities() { Name = " 01 : 30 " }); 
     source.Add(new Cities() { Name = " 02 : 00 " }); 
     source.Add(new Cities() { Name = " 02 : 30 " }); 
     source.Add(new Cities() { Name = " 03 : 00 " }); 
     source.Add(new Cities() { Name = " 03 : 30 " }); 
     source.Add(new Cities() { Name = " 04 : 00 " }); 
     source.Add(new Cities() { Name = " 04 : 30 " }); 
     source.Add(new Cities() { Name = " 05 : 00 " }); 
     source.Add(new Cities() { Name = " 05 : 30 " }); 
     source.Add(new Cities() { Name = " 06 : 00 " }); 
     source.Add(new Cities() { Name = " 06 : 30 " }); 
     source.Add(new Cities() { Name = " 07 : 00 " }); 

     this.Additional_Time.ItemsSource = source; 

Моего вопросом был, как получить выбранный элемент из этого listpicker.

Я пробовал использовать другой код для получения выбранного элемента из списка listpicker. Это исключение null null или недопустимое исключение.

private void Additional_Time_SelectionChanged(object sender, SelectionChangedEventArgs e) 
    { 
     var selectedItem = (sender as ListPicker).SelectedItem; 
     int selindex = Additional_Time.SelectedIndex;// lp.SelectedIndex; //just for testing 
     MessageBox.Show(selindex.ToString()); //just for testing 
     MessageBox.Show((Additional_Time.SelectedItem as ListPicker).ToString()); 
    } 

Пожалуйста, помогите мне решить эту проблему.

Заранее спасибо.

ответ

5

В своем коде, в последней строке вы пытаетесь бросить выбранный элемент ListPicker типа, но оно должно быть типа Cities:

MessageBox.Show((Additional_Time.SelectedItem as Cities).Name.ToString()); 
+0

Hai anderZubi это не работает ... Я сделать простая коррекция в коде очень благодарна .... IT - это MessageBox.Show ((Additional_Time.SelectedItem as Cities) .Name.ToString()); – selvam

+0

Хорошо, я изменил ответ. – anderZubi

Смежные вопросы