2017-02-27 46 views
0

我正在开发一个联系簿应用程序,其中我有一个添加按钮的列表视图。点击添加按钮后,它将用户重定向到一个模态页面,询问它的名称,电子邮件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(); 

    } 
} 

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

+0

在Xamarin Forms中,任何分配给'[ListView]'的属性即'candList'都会自动侦听这些更改并更新视图! – Smit

回答

1

您需要使用ObservableCollection而不是List。 ObservableCollection会通知任何数据绑定元素的变化。

1

恐怕你给我们的信息太少了。

  1. 您使用的是MVVM模式吗?如果不是:您需要参考ListView并添加一个新的Cell。如果是:请发布您的ViewModel持有绑定ContactDetails列表。
  2. 就像@Jason说的,如果有一个ContactDetails的列表绑定到ListViewItemsSource - 它需要是ObservableCollection<ContactDetails>。你在ClickHandler中所做的一切就是获得对该列表的引用并添加/插入新项目。