2009-10-10 150 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; 

编辑:不知道为什么,这是下跌表决。这是非自动生成列的正确解决方案。我有这个项目来证明它。我希望有人认为它有用。

相关问题