C# UWP-can';t访问ItemsPanel中的值

C# UWP-can';t访问ItemsPanel中的值,c#,xaml,uwp,itemspanel,C#,Xaml,Uwp,Itemspanel,我有以下XAML,但我似乎无法访问相应的.CS文件中ItemsWrapGrid的内容-有人能告诉我应该做什么吗(以下是隐藏的代码和XAML): private void wifiTapped(对象发送方,tappedroutedventargs e) { WriteLine(“在这里”+e.GetType().ToString()); ItemsWrapGrid wg=(ItemsWrapGrid)发送方; Debug.WriteLine(例如OriginalSource.ToString())

我有以下XAML,但我似乎无法访问相应的.CS文件中ItemsWrapGrid的内容-有人能告诉我应该做什么吗(以下是隐藏的代码和XAML):

private void wifiTapped(对象发送方,tappedroutedventargs e)
{
WriteLine(“在这里”+e.GetType().ToString());
ItemsWrapGrid wg=(ItemsWrapGrid)发送方;
Debug.WriteLine(例如OriginalSource.ToString());
foreach(工作组儿童中的对照c)
{
Debug.WriteLine(“控件”+c.Name);
}
Debug.WriteLine(“离开”);
}
为了清楚起见,当我运行这个程序时,我有三个数据项(因此它可以工作),但我希望能够做的是单击这三个数据项中的任何一个,并能够在数据面板中识别各个控件及其值

提前谢谢,这让我快发疯了。
Paul.

在GridView上将
IsItemClickEnabled
设置为true,并挂接到GridView本身上的ItemClick事件。从事件参数中,您可以获得发送者(最有可能是
GridViewItem
UI元素本身,您的
DataTemplate
内容是其子元素)和
ClickedItem
,这是datatemplate的绑定datacontext,在您的例子中是
data:wifiNets
,如果绑定有效,则意味着您实际上根本不必查看VisualTree


如果出于某种原因,您希望通过VisualChildren对任何ItemsControl的项进行递归,请使用ItemsControl上的
ContainerFromIndex
ContainerFromItem
方法来获取承载每个datatemplate实例的ItemContainer,尽管我不建议这样做,除非您确实需要。理想情况下,您不应该经常需要手动拖网查看可视化树。

正如我所看到的,wifiTapped()是为ItemsRapGrid定义的。为什么不使用gdViewClick()呢?毕竟,UWP打算采用MVVM方法,所以您是否可以尝试将逻辑移到viewmodel而不是代码隐藏?我必须正确检查,但我相信
子项
项资源
是两件完全不同的事情。您是否尝试在您的代码隐藏中访问
ItemsSource
?嗨,伙计们,我使用了Jonny下面的评论,并对绑定数据的类型进行了e.clickeditem转换-这正是我所需要的。
private void wifiTapped(object sender, TappedRoutedEventArgs e)
        {
            Debug.WriteLine("in here " + e.GetType().ToString());
            ItemsWrapGrid wg = (ItemsWrapGrid) sender;

            Debug.WriteLine(e.OriginalSource.ToString());
            foreach (Control c in wg.Children)
            {
                Debug.WriteLine("Control " + c.Name);

            }

            Debug.WriteLine("leaving ");
        }





<GridView VerticalAlignment="Top" ItemsSource="{Binding nets}" x:Name="GDView" ItemClick="gdViewClick" >
            <GridView.ItemTemplate>
                <DataTemplate x:Name="configDataTemplate" x:DataType="data:wifiNets" >
                    <StackPanel Height="300" Width="350" Margin="10" Name="dtStackPanel" >
                        <Image Source="Assets\wifiIcon.png" Width="200" Height="201"  />
                        <StackPanel Orientation="Horizontal">
                            <TextBlock Text="Name" Margin="0,0,10,0"/>
                            <TextBlock Name="configSSID" Width="auto"  Text="{x:Bind NetSSID}" FontSize="24" />
                        </StackPanel>
                        <StackPanel Orientation="Horizontal">
                            <TextBlock Text="Strength"  Margin="0,0,10,0"/>
                            <!--<TextBlock Name="configStrength" Width="auto" Text="{x:Bind NetSSIDStrength}" FontSize="20" />-->
                            <ProgressBar Name="configProgBar" Maximum="5" Value="{x:Bind NetSSIDStrength}" Foreground="Green"  />
                        </StackPanel>
                        <StackPanel Orientation="Horizontal">
                            <TextBlock Text="Connected" Margin="0,0,10,0"/>
                            <TextBlock Name="configConnectedTo" Text="{x:Bind NetSSIDConnected}" FontSize="20"/>
                        </StackPanel>

                    </StackPanel>
                </DataTemplate>
            </GridView.ItemTemplate>

            <GridView.ItemsPanel>
                <ItemsPanelTemplate>
                    <ItemsWrapGrid MaximumRowsOrColumns="10" Orientation="Vertical"  Tapped="wifiTapped" />
                </ItemsPanelTemplate>
            </GridView.ItemsPanel>
        </GridView>