GridView中有两个事件分别是:gvSource_SelectionChanged 和gvSource_ItemClick。
1. 若你设置了IsItemClickEnabled="True", 当你单击GridView里边的一个item时, gvSource_ItemClick事件会被触发。此时鼠标左键单击只是单击而不是选择。
2. 相反你如此设置IsItemClickEnabled="False", 当你单击GridView里边的一个item时, 此时鼠标左键是选择, 所以gvSource_SelectionChanged会被执行而gvSource_ItemClick不会被执行。
我们再分别看看如何在两个事件中获得GridView里边的内容:
<GridView x:Name="gvSource" HorizontalAlignment="Center" VerticalAlignment="Bottom" Margin="0,0,0,20" IsItemClickEnabled="False" ItemClick="gvSource_ItemClick" SelectionChanged="gvSource_SelectionChanged" > <GridView.GroupStyle> <GroupStyle ContainerStyle="{StaticResource HorizontalScrollViewerStyle}"/> </GridView.GroupStyle> <GridViewItem > <Image x:Name="firstImage" Source="Assets/Catoon/catoon (1).jpg" Height="100" Width="100"/> </GridViewItem> </GridView>
请看我们如何在两个事件中分别获得这个Image:
private void gvSource_ItemClick(object sender, ItemClickEventArgs e) { var imageSource = ((Image)e.ClickedItem).Source; }
private void gvSource_SelectionChanged(object sender, SelectionChangedEventArgs e) { var selectedItems =e.AddedItems; if (selectedItems.Count != 1) return; foreach (var item in selectedItems) { GridViewItem gvItem = (GridViewItem)item ; var image=gvItem.Content as Image; } }