Reputation: 4292
I have following GridView in my windows phone 8.1 universal app xaml
<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>
In selection change event I want to get the GridViewItem
to dynamically change the data template of the particulate item.
I tried the following code but GridView's
ItemContainerGenerator
property is alwasy null. How can I get the selected GridViewItem or is there any way to change data template of the selected Item on 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;
}
Upvotes: 0
Views: 1805
Reputation: 15006
GridViewItem is in the list of AddedItems in SelectionChangedEventArgs.
private void grdSearchResults_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
var gridViewItem = e.AddedItems.FirstOrDefault() as GridViewItem;
}
Upvotes: 1