2009-05-19 13 views
2

Ich lerne derzeit für das .net kompakte Framework mit C# in VS2008 zu entwickeln und haben eine Datenabfrage. Die Liste bindet sich in Form1_Load gut, wenn ich jedoch weitere Personen zur Liste hinzufüge, erscheinen sie nicht in dataGrid1 (obwohl ich die Bindung entferne und wieder hinzufüge, die sie erscheinen). Gibt es etwas, was ich tun muss, nachdem ich eine Person hinzugefügt habe?Datenbindung einer Liste in C# auf Compact Framework

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, was ist dataGrid1? Listenansicht? – hellboy

Antwort

4

Ändern Sie Ihre Erklärung von „Menschen“ dazu:

class People : BindingList<Person> { } 

Plain alten List<T> nicht die zugrunde liegenden Ereignisse haben die Datenbindung UI zu sagen, wenn die Liste geändert. Mit BindingList<T> sollten Sie loslegen.

+0

Kumpel, Sie rocken - beantwortet meine Frage in 7 Minuten ;-) – Alister

+0

viel besser als meine Lösung der Neuzuweisung der DataSource :-) – tjjjohnson

Verwandte Themen