我在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;
}
答案 0 :(得分:1)
GridViewItem位于SelectionChangedEventArgs中的AddedItems列表中。
private void grdSearchResults_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
var gridViewItem = e.AddedItems.FirstOrDefault() as GridViewItem;
}