Xamarin - 如何在类外使用列表

时间:2016-03-29 12:38:24

标签: c# android ios xamarin xamarin.forms

所以我一直在尝试在我自己的类之外的我的PageCreator类中使用我的列表,这个类叫做MainCPage,这个页面仍然在同一个包中。每当我在公共MainCPage方法中输入 PageCreator。时,它会显示 PageCreator.pages ,但在我需要它时似乎无法使用它!这是我的两个类的代码:

PageCreator.cs

public static List<ContentPage> pages = new List<ContentPage> (0);
    private string[] subjects = { "Welkom", "Bedrijfsgegevens", "Doelen", "Sales Funnel", "Sales Kit" };

    public PageCreator ()
    {
        StartPage ();
        BedrijfsGegevens ();
    }

    public void StartPage() {
        pages.Add (new ContentPage { Content = new StackLayout {
                BackgroundColor = "Black",
                Opacity = "0.75",
                Children = {
                    new Label { 
                        Text = subjects [0], 
                        FontSize = "40", 
                        HorizontalOptions = "Center", 
                        VerticalOptions = "Start" },
                    new Label {
                        Text = "Het Commerciele Huis uit Aalten (Achterhoek) is een instituut op het gebied van optimalisatie van commercie en communicatie. " +
                        "Wij werken met passie aan uw resultaat.",
                        FontSize = "26",
                        WidthRequest = "300",
                        HorizontalOptions = "Center",
                        VerticalOptions = "Center"
                    }
                }
            }
        });

MainCPage.cs

    public class MainCPage
{
    public MainCPage ()
    {
        PageCreator ();

        MainCPage = new CarouselPage {
            Children = {
                /*this is where I want to add the pages from the list
                  But it PageCreator.pages doesn't show up*/
            }
        };
    }

}

有人可以告诉我这里我做错了什么吗? 提前谢谢!

2 个答案:

答案 0 :(得分:1)

不幸的是,这不会奏效。您为Children使用的初始化程序语法等同于Children.Add(page)Add不接受网页集。相反,您必须在那里列出每个页面。

我还注意到IntelliSense并不总是在初始化程序内部工作。我正在运行Xamarin Studio 6.0并且它正在运行,因此我认为它已在Alpha通道中修复。

答案 1 :(得分:0)

知道了! 当我试图在儿童中输入PageCreator时,智能感知无效。以下代码应该而且必须有效:

MainPage = new CarouselPage {
    Children = { PageCreator.pages [0],
                 PageCreator.pages [1]
    }
};