无法获得ItemClicked事件

时间:2012-11-22 19:05:15

标签: xaml windows-8

我是XAML的新手,请帮助我为什么我无法获得点击事件。

我可以在DataTemplate / Grid上获取Tapped事件,我需要点击项目的确切ID。 这是我的网格:

 <GridView                            
          x:Name="newsGridView"
          SelectionMode="None"
          IsSwipeEnabled="false"
          ItemsSource="{Binding Source={StaticResource newsViewSource}}"
          ItemClick="newsGridView_ItemClick">
          <GridView.ItemTemplate>
          <DataTemplate>
          <Grid HorizontalAlignment="Left" Width="160" Height="160">
          <Border Background="{StaticResource ListViewItemPlaceholderBackgroundThemeBrush}">
          <Image Source="{Binding Image}" Stretch="UniformToFill" AutomationProperties.Name="{Binding Text}"/>
          </Border>
          <StackPanel VerticalAlignment="Bottom" Background="{StaticResource ListViewItemOverlayBackgroundThemeBrush}">
          <TextBlock Text="{Binding Text}" Foreground="{StaticResource ListViewItemOverlayForegroundThemeBrush}" Style="{StaticResource TitleTextStyle}" Height="30" Margin="15,0,15,0"/>
          <TextBlock Text="{Binding Subtitle}" Foreground="{StaticResource ListViewItemOverlaySecondaryForegroundThemeBrush}" Style="{StaticResource CaptionTextStyle}" TextWrapping="NoWrap" Margin="15,0,15,10"/>
          </StackPanel>
          </Grid>
          </DataTemplate>
          </GridView.ItemTemplate>
          </GridView>

我的事件处理程序

 private void newsGridView_ItemClick(object sender, ItemClickEventArgs e)
 {
    var s = sender as NewsObject;           
 }

TIA

1 个答案:

答案 0 :(得分:1)

您必须指定IsItemClickEnabled属性

<GridView                            
          x:Name="newsGridView"
          SelectionMode="None"
          IsSwipeEnabled="false"
          ItemsSource="{Binding Source={StaticResource newsViewSource}}"
          IsItemClickEnabled="true"
          ItemClick="newsGridView_ItemClick">
               <GridView.ItemTemplate>
                    <DataTemplate>
                    <Grid HorizontalAlignment="Left" Width="160" Height="160">
                    <Border Background="{StaticResource ListViewItemPlaceholderBackgroundThemeBrush}">
                         <Image Source="{Binding Image}" Stretch="UniformToFill" AutomationProperties.Name="{Binding Text}"/>
                    </Border>
               <StackPanel VerticalAlignment="Bottom" Background="{StaticResource ListViewItemOverlayBackgroundThemeBrush}">
                    <TextBlock Text="{Binding Text}" 
                    Foreground="{StaticResource ListViewItemOverlayForegroundThemeBrush}" 
                    Style="{StaticResource TitleTextStyle}" Height="30" Margin="15,0,15,0"/>
                    <TextBlock Text="{Binding Subtitle}" 
                    Foreground="{StaticResource ListViewItemOverlaySecondaryForegroundThemeBrush}" 
                    Style="{StaticResource CaptionTextStyle}" 
                    TextWrapping="NoWrap" Margin="15,0,15,10"/>
               </StackPanel>
          </Grid>
     </DataTemplate>
     </GridView.ItemTemplate>
</GridView>