2009-10-10 8 views
9

Ich habe eine BindingList <> von Objekten, auf die DataSource einer BindingSource festgelegt. Dies ist auf die DataSource eines DataGridView festgelegt.Korrekte Möglichkeit, eine BindingSource von einer DataGridView zu lösen

Ich habe Bedenken, keine potenziellen Speicherlecks zu verursachen, also frage mich, ob es eine bevorzugte Möglichkeit gibt, diese Verbindungen zu lösen, wenn ich mit den Daten fertig bin.

Ich denke an:

datagridview.DataSource = null; 
bindingsource.DataSource = null; 
bindingsource.Clear(); 

binden erneut an:

bindingsource.DataSource = bindinglist<myObjects>; 
datagridview.DataSource = bindingsource; 

diese Reihenfolge richtig ist, oder es wirklich egal? Habe ich etwas weggelassen, was dort sein sollte?

Alle Zeiger geschätzt, danke.

Antwort

12

NULL zu der Datagridview DataSource zuweisen ist die beste Möglichkeit, die Datenquelle des Gitters zu löschen, Sie sind richtig.

11

Wenn Sie benutzerdefinierte Spalten verwenden, legen Sie AutoGenerateColumns auf false fest, bevor Sie die DataSource löschen. Dadurch wird sichergestellt, dass Ihre benutzerdefinierten Spalten beibehalten werden. Andernfalls werden sie beim nächsten DataBind gelöscht und automatisch generiert.

Bearbeiten: Nicht sicher, warum dies abgelehnt wurde. Dies ist die richtige Lösung für nicht automatisch generierte Spalten. Ich habe das Projekt, um es zu beweisen. Ich hoffe, jemand findet es nützlich.

Verwandte Themen