在不知道谁是父母的情况下从父母中删除视图

时间:2018-10-22 20:19:52

标签: c# xamarin xamarin.forms

我认为这可以解决问题:

((Layout)view.Parent).Children.Remove(view);

但是,显然Layout.Children仅供内部使用,并且返回IReadOnlyList,因此我无法Remove进行任何操作。

1 个答案:

答案 0 :(得分:1)

如果您知道父容器的实际类型,那么它将起作用:

((StackLayout)view.Parent).Children.Remove(view);

否则,您可以执行以下操作:

var layout = (Layout)view.Parent;
switch (layout)
{
    case StackLayout s:
        s.Children.Remove(view);
        break;
    case AbsoluteLayout a:
        a.Children.Remove(view);
        break;
    case Grid g:
        g.Children.Remove(view);
        break;
    ~~~
}