Xamarin - 如何在其类之外使用列表

Posted

技术标签:

【中文标题】Xamarin - 如何在其类之外使用列表【英文标题】:Xamarin - How do I use a list in outside its class 【发布时间】:2016-03-29 12:38:23 【问题描述】:

所以我一直在尝试在自己的类之外使用我的 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*/
            
        ;
    


谁能告诉我我在这里做错了什么? 提前致谢!

【问题讨论】:

【参考方案1】:

很遗憾,这行不通。您用于 Children 的初始化程序语法等同于 Children.Add(page)Add 不接受页面集合。相反,您必须列出其中的每一页。

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

【讨论】:

感谢您的提示,确实是智能感知没有发挥作用。谢谢大佬!【参考方案2】:

知道了! 当我尝试在 Children 中键入 PageCreator 时,IntelliSense 不起作用。以下代码应该并且必须有效:

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

【讨论】:

以上是关于Xamarin - 如何在其类之外使用列表的主要内容,如果未能解决你的问题,请参考以下文章

如何使用包含在其类依赖注入中的 .net 5 类库的 dll?

如果对象没有默认构造函数并且我不允许在其类定义中创建一个对象,如何将对象放入节点中?

分段错误推回在其类函数c ++的循环内创建的对象

Java 构造函数具有比其类更广泛的访问级别

如何在其包装组件之外重新获取查询?

Xamarin-如何以编程方式扩展列表视图?