删除其他行后,DataGridView未显示第一行

时间:2015-12-26 23:57:47

标签: vb.net winforms bindingsource datagridviewrow bindingnavigator

我有一个问题,我已经调试了几天。

在某些上下文中,我有一个应用程序,我使用序列化在xml文件中存储数据(在下面的代码中包含类 Expediente 的列表)。为了显示数据,我将其反序列化,然后创建一个数据表,我将其用作数据网格的数据源。我添加了一个datagridcheckbox列来检查要删除的列。

在数据网格中,我有一个工具条按钮,当点击它时,它会删除已检查的 - 或在编辑模式下检查的行 CType(dgvr.Cells(0).GetEditedFormattedValue(dgvr.Index,DataGridViewDataErrorContexts。 Commit),Boolean)= True - 来自数据源的元素,并将数据源持久保存到xml。

问题在于,当反序列化xml并将其再次加载到数据表并将datagrid数据源绑定到它时,它将删除第一行。如果我关闭应用程序并打开它,则会出现第一行。

我已经调试并在数据表中显示正确的行数。此外,我已将问题缩小到绑定导航器,当它将绑定源设置为数据时,数据网格的第一行消失。

我粘贴了代码的简化版本,如果需要,我可以提供更多代码。 请注意,如果在LoadGridExpedientes()中,我会注释行

navExpedientes.BindingSource = Nothing

navExpedientes.BindingSource = bs

第一行不会消失,但显然绑定导航器的计数器不会更新。

document

1 个答案:

答案 0 :(得分:0)

问题在于我使用绑定导航器附带的删除工具条按钮,似乎单击它时“嵌入”它会删除默认为第一个选中的行。

我在绑定导航器中创建了一个新的工具条按钮,问题解决了。我不知道为什么不更新绑定导航器绑定源也避免了第一行被删除。