xaml中的网格视图项目内容(Windows应用商店应用)

时间:2013-05-03 16:15:38

标签: c# xaml gridview windows-store-apps

如何在网格视图中查看单击的网格项目的内容...例如,网格项目有一个文本框...当单击gridview项目时,如何通过ItemClickEventArgs获取此文本框的内容? 感谢

3 个答案:

答案 0 :(得分:0)

试试这段代码。

<GridView x:Name="gv" SelectionChanged="gvSelectionChanged">
    <GridViewItem>
        <TextBox x:Name="txtOne" />
    </GridViewItem>
    <GridViewItem>
        <TextBox x:Name="txtTwo" />
    </GridViewItem>
</GridView>

private void gvSelectionChanged(object sender, SelectionChangedEventArgs e)
{
    var SelectedText = ((TextBox)((GridViewItem)gv.SelectedItem).Content).Text;
}

答案 1 :(得分:0)

假设您正在将GridSource与GridView一起使用,您可以使用e.ClickedItem获取您单击的GridViewItem的DataContext。如果你想要实际的GridViewItem,你可以使用

GridViewItem item = (sender as GridView).ItemContainerGenerator.ContainerFromItem(e.ClickedItem) as GridViewItem;

然后你可以根据需要使用VisualTreeHelper.GetChild挖掘(比如找一个TextBox)。

答案 2 :(得分:0)

如果您使用DataTemplate在GridView中显示项目,我发现最简单的方法是在DataTemplate的控件上捕获Tapped,Hold等事件,该控件包含所有项目。

如果您可以编码

private void ItemTapped(object sender, TappedRoutedEventArgs e)
{       
    var clickedItem = (sender as FrameworkElement).DataContext;
}

这将为您提供被点击的项目中的对象。