【问题标题】:Deleting bound item from DataGridView从 DataGridView 中删除绑定项
【发布时间】:2010-10-18 21:49:42
【问题描述】:

我有一个对象列表,设置为 BindingSource 的 DataSource,设置为 DataGridView 的 DataSource。然后我添加了一个 DataGridViewButtonColumn,我希望单击它以从集合中删除该记录。所以我只是从 DataGridView CellClick 事件中调用 collection.RemoveAt(e.rowIndex) 。但是,这会产生 IndexOutOfRange 异常; “1 没有值”..

这里发生了什么?我可能有一个模糊的想法,但想准确了解哪些事件失败了等等。我需要做什么才能正确执行此操作?

编辑: 如果我使用 BindingList,这似乎不会发生。但是当使用 List 时,我遇到了这个问题..

【问题讨论】:

    标签: vb.net data-binding datagridview


    【解决方案1】:

    您看到错误的原因是您最终绑定到了ListList 不包括您的 DataGridView 需要接收以反映您所做的更改的更改通知。

    如果您真的想解决这个问题,您可以执行以下操作:就在您对 List 进行更改之前,将 BindingSource 的 DataSource 属性设置为 Nothing。完成更改后,将 List 重置为 DataSource。

    您可以想象,这是一个非常丑陋的解决方案。你想要做什么绑定到一个实现IBindingList的对象,你创建的自定义集合或BindingList

    这是进一步调查此问题的合理起点:
    DataGridView Control Overview (Windows Forms)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-04-28
      • 2020-10-30
      • 2010-12-08
      • 2023-03-16
      • 2010-10-26
      • 2015-05-04
      • 2016-08-02
      相关资源
      最近更新 更多