DataGridView / DataTable | rowState不会改变

时间:2012-05-13 08:59:43

标签: c# datagridview datatable bindingsource rowstate

我遇到了将数据绑定到DataGridView的问题。

我有一个继承自DataGridView的MyDataGridView类。我的数据网格视图数据源是一个BindingSource对象,它将DataTable作为数据源。

问题是,当我通过(我的)DataGridView对象进行更改时 - rowState保持'未修改'而不是修改;即使DataTable中的值发生了变化(这也是我的更新不起作用的原因,因为它认为rowState是未定义的)。请注意,直接对DataTable进行更改可以正常工作。

谢谢(:

3 个答案:

答案 0 :(得分:3)

您必须调用包含网格的表单的Validate方法。此方法会影响网格,就像将焦点移动到网格中的另一行一样。

答案 1 :(得分:1)

好的,所以在使用google之后我发现调用DataTable.Rows [index] .EndEdit()解决了这个问题。我不确定这是不是应该这样做,但它解决了问题。 (为了调用该方法,我使用DataGridView.CellEndEdit事件)。

答案 2 :(得分:0)

你能告诉我们MyDataGrdView类代码吗?

我认为我已经知道了解决方案: 您必须重新绑定数据源,以便控件知道何时更新

调用DataGridView.DataBind(); evrytime您已更改数据源。 您也可以使用DataTable执行此操作。