DataGridView/DataTable | rowState不会更改
我遇到了将数据绑定到DataGridView的问题。DataGridView/DataTable | rowState不会更改
我有一个从DataGridView继承的MyDataGridView类。我的数据网格视图数据源是保存DataTable作为数据源的BindingSource对象。
问题是,当我通过(我的)DataGridView对象进行更改时 - rowState保持“未修改”而不是修改;即使DataTable中的值发生了更改(这也是我的更新无法正常工作的原因,因为它将rowState视为未定义)。请注意,直接对DataTable进行更改可以正常工作。
谢谢(:
,你能否告诉我们MyDataGrdView类代码,请
,我想我已经知道了解决方案: 你必须重新绑定数据源,以便控制知道什么时候更新
通话DataGridView.DataBind();
evrytime更改了数据源。 它可能略有你有你的DataTable也需要这样做。
这不是那么容易,因为它在另一台计算机上,但在这里的一些重要部分:http://codepaste.net/t5y9yy。不要得到你的解决方案 - 重新绑定?!并且我无法在datagridview/datatable中找到该DataBind。谢谢(: – gavra
有没有这样的方法ataGridView.DataBind(); ..... –
好的,在使用google之后,我发现调用DataTable.Rows [index] .EndEdit()解决了这个问题。我不确定是否应该这样做,但解决了问题。 (为了调用该方法我使用DataGridView.CellEndEdit事件)。
您必须调用包含网格的窗体的Validate方法。此方法会影响网格,就像将焦点移动到网格中的另一行一样。
不起作用.... –
“当我通过(我的)DataGridView对象进行更改时” - 是否以编程方式进行这些更改? – animaonline
不,通过控制。如果我通过编程方式进行更改:myDataTable.rows [0] [0] =“new string” - 它更改rowState。我认为这个问题与绑定有关。 – gavra