2009-10-10 182 views
9

我有一個BindingList對象,設置爲BindingSource的DataSource。 這被設置爲DataGridView的DataSource。正確的方式來解除綁定來自DataGridView的BindingSource

我關心不會造成任何潛在的內存泄漏,所以想知道當我完成數據時是否有首選的方法來解除這些連接。

我在想:

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

要重新綁定:

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

這是爲了正確,或者是否真的重要?我有沒有遺漏任何應該在那裏?

任何指針讚賞,謝謝。

回答

12

將null指定給datagridview DataSource是清除網格數據源的最佳方法,您是對的。

11

如果您使用自定義列,請在清除DataSource之前將AutoGenerateColumns設置爲false。 這將確保您的自定義列被保留。否則,它們將被清除並在下一個DataBind上自動生成。

datagridview.AutoGenerateColumns = false; 
datagridview.DataSource = null; 

編輯:不知道爲什麼,這是下跌表決。這是非自動生成列的正確解決方案。我有這個項目來證明它。我希望有人認爲它有用。