【问题标题】:Correct way to unbind a BindingSource from a DataGridView从 DataGridView 取消绑定 BindingSource 的正确方法
【发布时间】:2009-10-10 09:05:02
【问题描述】:

我有一个 BindingList 对象,设置为 BindingSource 的 DataSource。 这设置为 DataGridView 的 DataSource。

我担心不会导致任何潜在的内存泄漏,因此想知道在我完成数据后是否有一种首选方法可以解除这些连接的绑定。

我在想:

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

重新绑定:

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

这个顺序是正确的,还是真的很重要?我是否遗漏了应该存在的任何内容?

【问题讨论】:

    标签: c# winforms data-binding datagridview


    【解决方案1】:

    给datagridview的DataSource赋值null是最好的清除grid数据源的方法,你是对的。

    【讨论】:

      【解决方案2】:

      如果您使用自定义列,请在清除数据源之前将 AutoGenerateColumns 设置为 false。 这将确保您的自定义列得到保留。否则它们将被清除并在下一个 DataBind 时自动生成。

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

      编辑:不知道为什么这被否决了。这是非自动生成列的正确解决方案。我有项目可以证明这一点。我希望有人觉得它有用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-08-30
        • 1970-01-01
        • 2018-04-15
        • 1970-01-01
        • 1970-01-01
        • 2012-04-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多