2016-05-24 9 views
1

Ich habe ein Formular mit einem Listview, die ich mit einer Liste zu füllen, die die Gäste alle aus der Datenbank enthältRefresh Listenansicht nach Gast wurde in anderer Form erstellt

private void PopulateListBox() 
    { 
     var guests = Repository.GetAllGuests(); 

     foreach (var guest in guests) 
     { 
      ListViewItem lvData = new ListViewItem(guest.AccountID.ToString()); 

      lvData.SubItems.Add(guest.Username); 
      lvData.SubItems.Add(guest.Email); 
      lvData.SubItems.Add(guest.FirstName); 
      lvData.SubItems.Add(guest.LastName); 
      lvData.SubItems.Add(guest.TelephoneNumber); 
      lvData.SubItems.Add(guest.AddressLine1); 
      lvData.SubItems.Add(guest.AddressLine2); 
      lvData.SubItems.Add(guest.City); 
      lvData.SubItems.Add(guest.State); 
      lvData.SubItems.Add(guest.Postcode); 
      lvData.SubItems.Add(guest.Country); 

      listViewGuests.Items.Add(lvData); 
     } 
    } 

ich auch eine Schaltfläche mit Add Gast habe:

private void btnAddGuest_Click(object sender, EventArgs e) 
{ 
    FormAddGuest formAddGuest = new FormAddGuest(); 
    formAddGuest.MdiParent = this.MdiParent; 
    formAddGuest.Show(); 
} 

diese andere Form eröffnet, wo ich einen Gast zur Datenbank hinzufügen kann, was ich möchte, ist zu erreichen, wenn ein Gast aufgenommen wurde, sollte es diese beiden Zeilen excecute:

listViewGuests.Items.Clear(); 
PopulateListBox(); 

Um die Listview zu aktualisieren, das Problem ist, dass ich nicht so funktionieren kann.

Vielen Dank für Ihre Zeit!

Antwort

1

Verwenden Sie ShowDialog, um dieses Problem zu lösen m

private void btnAddGuest_Click(object sender, EventArgs e) 
{ 
    FormAddGuest formAddGuest = new FormAddGuest(); 
    //formAddGuest.MdiParent = this.MdiParent; 
    formAddGuest.ShowDialog(); 
    listViewGuests.Items.Clear(); 
    PopulateListBox();  
} 

FormAddGuest sobald Sie das Formular schließen Ihre Liste wird erhalten rebind (ob Sie Gast oder nicht hinzugefügt).

+1

Danke, das hat funktioniert! – josephzigler

0

Versuchen Sie, die MdiParent auf die Form einstellen, dass der Gast hinzufügen Button ist in:

formAddGuest.MdiParent = this; 

Dann können Sie die Liste aus dem Formular Add Gastzugang:

((ListView)this.MdiParent.Controls["listViewGuests"]).Items.Clear(); 

Und die PopulateListBox machen () öffentlich, so dass Sie anrufen können:

this.MdiParent.PopulateListBox(); 
Verwandte Themen