UWP - 无法访问项目面板中的值



我有以下XAML,但我似乎无法访问相应的.cs文件中的itemswrapgrid的内容 - 任何人都可以告诉我我应该做什么(这是背后的代码和xaml(:

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="AssetswifiIcon.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> 

只是要清楚,当我运行它时,我有三个数据(所以它正在工作( - 但是我想做的就是单击三个数据项中的任何一个,并能够识别个人控制及其值在数据面板中。

事先感谢,这让我发疯。保罗。

IsItemClickEnabled设置为true在您的gridview上,然后在gridview本身上挂接到itemClick事件。从事件args中,您可以获取发件人(最有可能是DataTemplate内容是孩子的GridViewItem UI元素本身(,而ClickedItem,即DataTemplate的界限数据登录 - 在您的情况下是data:wifiNets的实例 - 如果您的绑定工作意味着您实际上根本不必查看VisualTree。

由于某种原因,您要通过VisualChildren重复进行任何项目Scontrol的项目,请在ItemScontrol上使用ContainerFromIndexContainerFromItem方法来使ItemContainer托管DatateMplate的每个实例 - 尽管我不建议这样做,否则你真的也需要。理想情况下,您通常不需要手动拖动视觉树。

相关内容

  • 没有找到相关文章

最新更新