2017-02-27 20 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(); 

    } 
} 

私は私のように提供しなければならないものにとして理解することはできませんよ私のlistviewのitemsourceは、ContactDetailsクラスに格納されている値をモーダルページで動的に表示できるようにします。

+0

Xamarinフォームでは、[ListView]に割り当てられたすべてのプロパティ、つまり「candList」が自動的に変更をリッスンし、ビューを更新します。 – Smit

答えて

1

リストの代わりにObservableCollectionを使用する必要があります。 ObservableCollectionは、データバインドされた変更の要素を通知します。

1

私はあまりにも少ない情報を与えてくれるのではないかと心配しています。

  1. MVVMパターンを使用していますか?そうでない場合:ListViewへの参照が必要で、新しいセルを追加してください。はいの場合:ViewModelの投稿ContactDetailsリストを掲示してください。
  2. @Jasonと同様に、ListViewItemsSourceにバインドされているContactDetailsのリストがある場合 - それはObservableCollection<ContactDetails>である必要があります。 ClickHandlerで行ったことは、そのListへの参照を取得し、新しい項目を追加/挿入することだけです。
関連する問題