0

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

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

这可能吗?我只知道FindName()FindResource()但是所有的UserControls 都没有名字,所以我不能使用这些方法:(

提前致谢!

4

1 回答 1

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;
}
于 2012-10-13T23:53:33.350 回答