UWP-获得Gridview的第一个孩子

时间:2018-07-12 00:30:30

标签: c# xaml gridview datagridview uwp

b""

我正在尝试通过动态填充的gridview的索引选择一个子级,但是我尝试过的总是返回null。

例如第一个孩子,例如:

encode()

我在这里做什么错了?

1 个答案:

答案 0 :(得分:0)

您可以直接从方法ItemsControl.ContainerFromIndex(Int32)中获取相应的GridViewItem,而无需使用VisualTreeHelper再次获取它。

var container = MainGridStations.ContainerFromIndex(0);
GridViewItem gridViewItem= container as GridViewItem;
gridViewItem.Background = new SolidColorBrush(Colors.Red);

container是从索引中获取的相应GridViewItem

请注意:由于您的内部Grid具有Background="White"属性配置,因此可以使用上面的代码更改gridViewItem.Background来删除代码以更清楚地看到效果。

---更新---

加载项目后,您必须获得GridViewItem。您可以在GridView_ItemClick事件处理程序或页面的已加载事件处理程序中尝试代码。另外请注意我的上述注意事项,为了获得更明显的效果,请删除您上面的xaml代码中的Background="White"

private void MainPage_Loaded(object sender, RoutedEventArgs e)
{
    var container = MainGridStations.ContainerFromIndex(0);
    GridViewItem gridViewItem = container as GridViewItem;
    gridViewItem.Background = new SolidColorBrush(Colors.Green);
}

//get the item here
private void GridView_ItemClick(object sender, ItemClickEventArgs e)
{
    var container = MainGridStations.ContainerFromIndex(0);
    GridViewItem gridViewItem= container as GridViewItem;
    gridViewItem.Background = new SolidColorBrush(Colors.Red);
    //var presenter = VisualTreeHelper.GetChild(container, 0) as GridViewItem;
}