从Grid.Children中删除特定的对象实例?

时间:2012-10-13 23:37:46

标签: c# wpf grid

我有List<T>UserControl个。 在主窗口上有一个Grid,部分UserControl将添加到Grid.Children。 现在,我希望能够从此UserControl中移除特定的Grid,例如我想做这样的事情

layoutRoot.Children.Remove(controlList[1]);

这可能吗? 我只知道FindName()FindResource(),但所有UserControl都没有名称,因此我无法使用这些方法:(

提前致谢!

1 个答案:

答案 0 :(得分:1)

只是一个让你入门的想法,如果你知道你的用户控件的类型,你可以使用这样的方法:

static T FindVisualChild<T>(Visual parent) where T : Visual
{
    T child = default(T);
    int numVisuals = VisualTreeHelper.GetChildrenCount(parent);
    for (int i = 0; i < numVisuals; i++)
    {
        var visual = (Visual)VisualTreeHelper.GetChild(parent, i);

        child = visual as T;
        if (child == null)
            child = FindVisualChild<T>(visual);
        if (child != null)
            break;
    }
    return child;
}