2015-09-19 2 views
0

Я работаю над проектом Windows Phone 8.1 RT, и я хочу получить свой привязывающий элемент при подключении mapcontrolSP.MapItemsControl Tapped Event на WP 8.1 RT

<Maps:MapControl x:Name="Map" MapServiceToken="abcdef-abcdefghijklmno"> 
     <Maps:MapItemsControl x:Name="mapitem" ItemsSource="{Binding}"> 
      <Maps:MapItemsControl.ItemTemplate> 
       <DataTemplate> 
        <StackPanel x:Name="mapcontrolSP" Orientation="Horizontal" Background="Red" Tapped="ItemStckPanel"> 
         <Image Source="Assets/ico-venue.png" Height="45" Width="45" 
          Maps:MapControl.Location="{Binding Geopoint}" 
          Maps:MapControl.NormalizedAnchorPoint="{Binding Anchor}"/> 
         <StackPanel VerticalAlignment="Center" HorizontalAlignment="Center" Margin="5"> 
          <TextBlock FontSize="15" Foreground="White" Text="{Binding name}"/> 
          <TextBlock FontSize="15" Foreground="White" Text="{Binding address}"/> 
          <TextBlock FontSize="15" Foreground="White" Text="{Binding distance}"/> 
         </StackPanel> 
        </StackPanel> 
       </DataTemplate> 
      </Maps:MapItemsControl.ItemTemplate> 
     </Maps:MapItemsControl> 
    </Maps:MapControl> 

создать насыпную событие на элемент StackPanel, но элемент является пустым:

private void ItemStckPanel(object sender, TappedRoutedEventArgs e) 
    { 
      var item = sender as FsqBasicItem; 
      MessageDialog dialog = new MessageDialog(item.name); 
      dialog.ShowAsync(); 
    } 

Как я могу получить товар?

ответ

2

Быстрое решение:

private void ItemStckPanel(object sender, TappedRoutedEventArgs e) 
{ 
     var stackPanel = sender as StackPanel; 
     var item = stackPanel.DataContext as FsqBasicItem; 
     if(item != null) 
     { 
      MessageDialog dialog = new MessageDialog(item.name); 
      dialog.ShowAsync(); 
     } 
} 
+0

Исключение снова. Теперь stackpanel имеет значение null. Я использую эту строку для привязки mapitem.ItemsSource = basicItemsList; –

+0

Хм. Не могли бы вы показать мне, как это выглядит в коде? Причина в моем тестовом решении, этот код: http://pastebin.com/cYMVivQc работает очень хорошо. –

+0

Полный код здесь http://pastebin.com/FkL4DV26# –