Xamarin使用上一页的列表填充列表视图

时间:2018-03-13 15:34:52

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

我正在从一个页面导航到另一个页面(使用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()方法。

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分: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;
}