如何根据类的值动态更新listview

时间:2017-02-27 16:56:55

标签: listview xamarin xamarin.forms

我正在开发一个联系簿应用程序,其中我有一个带有添加按钮的列表视图。点击添加按钮后,它会将用户重定向到一个模态页面,询问它的名称,电子邮件ID,机构。所有这些细节都保存在ContactDetails类中。在模态页面上单击完成按钮时,我想在列表视图中显示内容。

有关如何成功实施此建议的任何建议。

目前正在进行的代码如下: ContactDetails.cs

public class ContactDetails
{
    public string Name { get; set; }
    public string Inst { get; set; }
    public string EmailId { get; set;}  
    public int Mob { get; set;}
}

ContactDetailsModalPage.xaml.cs

public partial class ContactDetailsModalPage: ContentPage
{
    CandidateDetails cd = new CandidateDetails();
    async void OnDoneClicked(object sender, System.EventArgs e)
    {
        cd.Name = (string)candNameEntry.Text; 
        cd.Inst = (string)candInst.Text;
        cd.EmailId = (string)candEmailId.Text;
        cd.Mob = Convert.ToInt32(candMobNumber.Text);

        List<ContactDetails> candList = new List<ContactDetails>();
        candList.Add(cd);

        await Navigation.PopModalAsync();

    }


    public CandidateDetailsModalPage()
    {
        InitializeComponent();

    }
}

我无法理解我应该提供什么作为listview的itemsource,以便它可以通过模态页面动态显示存储在ContactDetails类中的值。

2 个答案:

答案 0 :(得分:1)

您需要使用ObservableCollection而不是List。 ObservableCollection将通知任何数据绑定元素的更改。

答案 1 :(得分:1)

我担心你给我们的信息太少了。

  1. 您使用的是MVVM模式吗?如果不是:您需要引用ListView并添加新的单元格。如果是:请发布您的ViewModel持有绑定的ContactDetails列表。
  2. 与@Jason一样,如果有一个ContactDetails的列表绑定到ItemsSource的{​​{1}},则它必须是ListView。您在ClickHandler中所做的就是获取对该List的引用并添加/插入新项目。