【问题标题】:Xamarin Using List from previous page to populate List viewXamarin 使用上一页中的列表填充列表视图
【发布时间】:2018-03-14 00:50:15
【问题描述】:

我正在从一个页面导航到另一个页面(使用 Navigation.PushModalAsync)。第一页有一个列表。第二页有一个列表视图。我想将该列表传递到第二页,然后使用该列表中的数据填充列表视图。我该怎么办?

亲切的问候

更新: 好像我的列表视图没有出现。我尝试手动设置 itemsource 并且下一页仍然是空白的。我有这个方法:

        protected override void OnAppearing()
    {
        base.OnAppearing();
        var listView = new ListView();
        //listView.ItemsSource = dataSource;
        listView.ItemsSource = new string[]{
  "mono",
  "monodroid",
  "monotouch",
  "monorail",
  "monodevelop",
  "monotone",
  "monopoly",
  "monomodal",
  "mononucleosis"
};

        listView.RowHeight = 40;
    }

但是下一页仍然是空白的,只有红色背景。除此之外,我似乎没有 listview.ItemSource.Add() 方法。

【问题讨论】:

  • 我建议你看看 C# Properties 和 Jason 的回复!
  • 当我第一次尝试将它作为参数传递时,我的构造函数出现错误。以为只是 Xamarin 出了问题,但我知道这应该是可能的/

标签: c# xamarin xamarin.forms xamarin.android


【解决方案1】:

在此处查看 Xamarin Forms 中的消息中心,这是一种选择:https://developer.xamarin.com/guides/xamarin-forms/application-fundamentals/messaging-center/

或者另一种选择只是在您正在推送的模式的构造函数中传递列表。在我看来,使用消息中心是一种更清洁的方式。

【讨论】:

  • 你能举例说明它在这种情况下是如何工作的吗?文档通常缺乏上下文。
【解决方案2】:

在第 1 页

List<string> mydata;
var page2 = new Page2(mydata);
Navigation.PushModalAsync(page2);

在第2页

List<string> Data { get; set; }

public Page2(List<string> data) {
  this.Data = data;
}

public override void OnAppearing() {
  MyListView.ItemsSource = Data;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-08
    • 2014-01-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多