Xamarin.Forms我们如何从TabbedPage的孩子中删除一个孩子?

时间:2016-06-26 23:34:59

标签: xamarin.forms

我想在某些条件下从标签页中添加和删除子页面。 但是,它给了我收集“儿童”是只读的。 有人成功了吗? 这是TabbedPage的代码

<TabbedPage xmlns="http://xamarin.com/schemas/2014/forms"
            xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
            xmlns:prism="clr-namespace:Prism.Mvvm;assembly=Prism.Forms"
            xmlns:partialViews="clr-namespace:TestTabbed.Views.PartialViews;assembly=TestTabbed"
            prism:ViewModelLocator.AutowireViewModel="False"
            x:Class="TestTabbed.Views.MainPage"
            ItemsSource="{Binding ChannelLists}" Appearing="MainPage_OnAppearing"
            Disappearing="MainPage_OnDisappearing">

    <TabbedPage.ItemTemplate>
        <DataTemplate>
            <ContentPage Title="{Binding Name}"  x:Name="mainContentPage">
                <ContentPage.Content>
                    <OnIdiom x:TypeArguments="View">
                        <OnIdiom.Phone>
                            <partialViews:MainPhoneView />
                        </OnIdiom.Phone>
                        <OnIdiom.Tablet>
                            <partialViews:MainTabletView />
                        </OnIdiom.Tablet>
                    </OnIdiom>
                </ContentPage.Content>
            </ContentPage>
        </DataTemplate>
    </TabbedPage.ItemTemplate>

</TabbedPage>

1 个答案:

答案 0 :(得分:1)

如果我错过了实际问题,查看您的代码可能会有所帮助,但以下内容对您有用(请注意,您无法直接将集合分配给TabbedPage.Children属性,这听起来就像您正在运行到):

TabbedPage  tab  = new TabbedPage();
ContentPage page = new ContentPage();

tab.Children.Add(page);
tab.Children.Remove(page);

以下不会工作的地方:

TabbedPage tab = new TabbedPage();
tab.Children   = new List<Page>();