如何在GridView选择更改中获取选定的GridViewItem

时间:2014-12-11 08:03:47

标签: xaml gridview windows-phone-8.1 win-universal-app

我在Windows Phone 8.1通用应用程序xaml

中使用了GridView
<GridView Grid.Row="2" Name="grdSearchResults" ItemsSource="{Binding ListData}" SelectedItem="{Binding MySelectedItem,Mode=TwoWay}" 
                  ItemTemplate="{StaticResource MyItemTemplate}" Margin="0,0,0,0"
                  SelectionChanged="GridView_SelectionChanged">

                    </GridView>

在选择更改事件中,我想让GridViewItem动态更改颗粒物品的数据模板。

我尝试了以下代码,但GridView's ItemContainerGenerator属性为alwasy null。如何获取选定的GridViewItem或者是否有任何方法可以在GridView上更改所选项的数据模板?

 private void GridView_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
         var gridview = sender as GridView;

         var item = gridview.ItemContainerGenerator.ContainerFromIndex(gridview.SelectedIndex) as GridViewItem;
         item.ContentTemplate = Application.Current.Resources["MySelectedTemplate"] as DataTemplate;
 }

1 个答案:

答案 0 :(得分:1)

GridViewItem位于SelectionChangedEventArgs中的AddedItems列表中。

private void grdSearchResults_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    var gridViewItem = e.AddedItems.FirstOrDefault() as GridViewItem;
}