djshichaoren 2016-03-12 03:09 采纳率: 0%
浏览 686

.NET 如何获得GridView的子控件

我创建的是winapp应用,通过数据绑定生成了GridView的子控件,
但是用

 UIElement uiElement = (UIElement)MyGridView.ItemContainerGenerator.ContainerFromIndex(index);

获取GridView中的子控件时被告知这个函数已经过期了,然后就用了它推荐的

 UIElement tb =MyGridView.ContainerFromIndex(index) as UIElement;

可是获得的是null。
然后查了stack overflow,上面的人说在前台把GridView的VirtualizingStackPanel.IsVirtualizing设为false,但是我看了一下现在的GridView中根本就没有这个属性了,只有VirtualizingStackPanel.VirtualizationMode,然而设置之后没有用。

请问我怎样做才能在后台得到GridView中的子控件??

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-05 01:27
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    要从GridView中提取子控件,请使用GridViewItemControl类。这将允许你访问所有控件,并且不会被任何虚拟化操作所影响。

    以下是一个示例:

    var item = GridView1.Items[0] as GridViewItemControl;
    if(item != null)
    {
        var gridCell = item.Cells[0] as GridCell;
    
        if(gridCell != null)
        {
            // 获取到子控件了
        }
    }
    

    在这个例子中,我们首先检查是否有一个item(即一个GridViewItem),如果有,则将其转换为GridViewItemControl。如果存在,则再次检查是否有GridCell,并返回它的引用。

    评论

报告相同问题?