2009-05-19 11 views
2

現在、VS2008でC#を使用してコンパイルされた.netコンパクトフレームワークを開発し、データバインディングクエリを取得することを学んでいます。リストはForm1_Loadで正常にバインドされますが、リストに追加する人はdataGrid1に表示されません(ただし、バインディングを削除して再追加すると表示されます)。私は人を追加した後に何かする必要がありますか?コンパクトフレームワークでのC#でのデータバインディング

class Person 
    { 
     private string firstname; 
     private string surname; 

     public string FirstName { get { return firstname; } set { firstname = value; } } 
     public string Surname { get { return surname; } set { surname = value; } } 

     public Person(string F, string S) 
     { 
      this.firstname = F; 
      this.surname = S; 
     } 
    } 

    private void btnAdd_Click(object sender, EventArgs e) 
    { 
     people.Add(new Person(tbFirstName.Text, tbSurname.Text)); 
    } 

    class People : List<Person> 
    { 
    } 

    People people = new People(); 

    private void Form1_Load(object sender, EventArgs e) 
    { 
     people.Add(new Person("Jim", "Jones")); 
     people.Add(new Person("Al", "Hill")); 
     people.Add(new Person("Darth", "Vader")); 
     dataGrid1.DataSource = people; 
    } 
+0

dataGrid1.DataSource、dataGrid1とは何ですか?リストビュー? – hellboy

答えて

4
はこれに「人」のあなたの宣言を変更

class People : BindingList<Person> { } 

平野List<T>古いリストが変更されたときにデータバインディングのUIを伝えるための基礎となるイベントを持っていません。 BindingList<T>を使用してください。

+0

あなた、あなたがロック - 私の質問に7分で答えました;-) – Alister

+0

私のデータソース再割り当てソリューションよりもはるかに優れています:-) – tjjjohnson

関連する問題