对象的孩子

时间:2013-02-15 20:37:47

标签: c# uielementcollection

我有一个应该返回UIElementCollection的函数。该函数接收具有UIElement属性的children(即stackpanelgrid等),但不知道它是UIElement,所以我将它存储在一般对象中。

public UIElementCollection retCol (object givenObject){
...
}

我想返回givenObject的孩子,但除了将givenObject作为堆叠面板或网格投射之外,我找不到办法。

有没有办法可以获得givenObject的儿童属性?

1 个答案:

答案 0 :(得分:0)

StackPanelGrid都继承自Panel,因此您可以将方法更改为:

public UIElementCollection retCol (Panel givenObject){
    return givenObject.Children;
}

或者如果你想让它适用于所有UIElement类型,你可以使它更通用并检查函数中的类型:

public UIElementCollection retCol (UIElement givenObject){
    if(givenObject is Panel)
        return ((Panel)givenObject).Children;
    else if(givenObject is SomeOtherContainer)
        return ((SomeOtherContainer)givenObject).Children;

    else
        return null;
}