0

を返すはずの関数がありUIElementCollectionます。この関数は、プロパティ ( 、など)UIElementを持つa を受け取りますが、それがどれであるかがわからないため、一般的なオブジェクトに格納します。childrenstackpanelgridUIElement

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

の子を返したいのですが、スタックパネルまたはグリッドとしてgivenObjectキャストする以外に方法が見つかりません。givenObject

の children プロパティを取得する方法はありgivenObjectますか?

4

1 に答える 1

0

StackPanel両方ともGridから継承する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;
}
于 2013-02-15T20:44:41.260 に答える