繁体   English   中英

UWP如何获得在GridView中单击的自定义项目

[英]UWP How to get the custom item clicked in a GridView

我有一个带有自定义控件项的网格视图,如下所示。 这些项目是类型为StaticResource:UserControlCataloghiTematici的UserControll。

<GridView SizeChanged="listView_SizeChanged" 
              x:Name="listView"  
              Background="#fff"
              Margin="0,50,10,0" BorderThickness="0" Grid.Row="1" IsItemClickEnabled="True"  ItemClick="listView_ItemClick" SelectionChanged="listView_SelectionChanged" Grid.Column="4" 
                Width="{Binding ActualWidth, ElementName=griglia}">
        <GridView.ItemTemplate>
            <DataTemplate x:Name="ImageTextDataTemplate" >
                <StaticResource:UserControlCataloghiTematici  Height="auto" Width="auto"   >
                </StaticResource:UserControlCataloghiTematici>
            </DataTemplate>
        </GridView.ItemTemplate>
    </GridView>

由于事件中的发件人是GridView,是否有办法找回在listView_ItemClick事件中单击的UserControl?

是的,您可以使用GridViewContainerFromItem方法来检索包装模板内容的GridViewItem元素。 然后,您可以使用VisualTreeHelper按其类型查找用户控件。

var gridViewItem = MyGridView.ContainerFromItem(e.ClickedItem) as GridViewItem;
var control = gridViewItem.FindDescendant<UserControlCataloghiTematici>() ;

这要求您使用UWP社区工具包中的VisualTreeExtensions ,您可以在NuGet上获得它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM