C# 如何获取Gridview';s SelectedItem';s子网格?

C# 如何获取Gridview';s SelectedItem';s子网格?,c#,gridview,windows-8,windows-store-apps,winrt-xaml-toolkit,C#,Gridview,Windows 8,Windows Store Apps,Winrt Xaml Toolkit,我的结构如下: <GridView x:Name="GVmain" SelectionChanged="GVmain_SelectionChanged_1" ItemsSource="{Binding DateItemsView}" SelectionMode="None" Visibility="Visible" Padding="120,0,0,0" ScrollViewer.HorizontalScrollMode="Enabled" ScrollViewer.Vertic

我的结构如下:

     <GridView x:Name="GVmain" SelectionChanged="GVmain_SelectionChanged_1" ItemsSource="{Binding DateItemsView}" SelectionMode="None" Visibility="Visible" Padding="120,0,0,0" ScrollViewer.HorizontalScrollMode="Enabled" ScrollViewer.VerticalScrollMode="Disabled" Grid.Row="1"  ItemContainerStyle="{StaticResource GridViewItemStyleATLIST}">
            <!--<StackPanel Orientation="Horizontal">-->

            <GridView.ItemTemplate>
                <DataTemplate>
                    <Grid Margin="0,0,30,0" Width="400" DataContext="{Binding}" >
                        <Grid.RowDefinitions>
                        ...

...
使用Xamwinrt工具包,有没有办法选择GVmain的selecteditem的子网格

我想我只能将SelectedItem强制转换为它的ItemSource类型。

使用,传入
列表视图。SelectedItem
。这将为您提供
SelectedItem
ListViewItem
。然后,您可以使用普通的
getgrounds
getfirstgroundantoftype
来解析可视树

i、 e

//ContainerFromItem有时似乎有问题,所以请使用ContainerFromIndex。
//var itemContainer=GVmain.ContainerFromItem(GVmain.SelectedItem);
var itemContainer=GVmain.ContainerFromIndex(GVmain.SelectedIndex);
var rootGrid=itemContainer.getFirstDegenantofType();

希望这有助于和快乐的编码

嘿@Nate Diamond,谢谢你的回答,我检查了一下,似乎ContainerFromItem只在8.1中可用,但我使用的是windows 8。如何在windows 8中实现此功能?在windows 8中,有一个ItemContainerGenerator具有此功能,但它不工作,并返回null`var itemContainer=GVmain.ItemContainerGenerator.ContainerFromIndex(GVmain.SelectedIndex);Grid Grid=itemContainer.GetFirstDegenantofType();`itemContainer正在获取nullAh,您正在使用Windows 8。首先,如果可以,我将更新到8.1。其次,确保该项实际上在列表中,并且列表已首先完全加载。如果在列表初始化之前执行此操作,它将始终返回
null
。使用
ContainerFromIndex
时,它是否返回
null
ListViewItem
,即使
GetFirstDownantofType
返回
null
。使用ContainerFromIndex可以解决问题,但是仍然不知道为什么ContainerFromItem不起作用。我知道过去有很多关于它有问题的报告,所以我通常依赖于
ContainerFromIndex
// ContainerFromItem seems to have issues at times, so use ContainerFromIndex.
//var itemContainer = GVmain.ContainerFromItem(GVmain.SelectedItem);
var itemContainer = GVmain.ContainerFromIndex(GVmain.SelectedIndex);
var rootGrid = itemContainer.GetFirstDescendantOfType<Grid>();