代码之家  ›  专栏  ›  技术社区  ›  Andy

从DataGridView取消绑定BindingSource的正确方法

  •  9
  • Andy  · 技术社区  · 15 年前

    我有一个对象的bindingList,设置为bindingSource的数据源。 这被设置为DataGridView的数据源。

    我担心不会导致任何潜在的内存泄漏,所以想知道在我处理完数据后,是否有一种更好的方法来解除这些连接的绑定。

    我在想:

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

    重新绑定:

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

    这个顺序是正确的,还是真的很重要?我遗漏了什么应该在那里的东西了吗?

    感谢您的指点。

    2 回复  |  直到 10 年前
        1
  •  12
  •   Wael Dalloul    15 年前

    为DataGridView数据源分配空值是清除网格数据源的最佳方法,您是正确的。

        2
  •  11
  •   Tomas Beblar    10 年前

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

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

    编辑:不知道为什么投了反对票。这是非自动生成列的正确解决方案。我有这个项目来证明它。我希望有人发现它有用。