2012-05-13 87 views
0

我遇到了將數據綁定到DataGridView的問題。DataGridView/DataTable | rowState不會更改

我有一個從DataGridView繼承的MyDataGridView類。我的數據網格視圖數據源是保存DataTable作爲數據源的BindingSource對象。

問題是,當我通過(我的)DataGridView對象進行更改時 - rowState保持「未修改」而不是修改;即使DataTable中的值發生了更改(這也是我的更新無法正常工作的原因,因爲它將rowState視爲未定義)。請注意,直接對DataTable進行更改可以正常工作。

謝謝(:

+0

「當我通過(我的)DataGridView對象進行更改時」 - 是否以編程方式進行這些更改? – animaonline

+0

不,通過控制。如果我通過編程方式進行更改:myDataTable.rows [0] [0] =「new string」 - 它更改rowState。我認爲這個問題與綁定有關。 – gavra

回答

0

,你能否告訴我們MyDataGrdView類代碼,請

,我想我已經知道了解決方案: 你必須重新綁定數據源,以便控制知道什麼時候更新

通話DataGridView.DataBind(); evrytime更改了數據源。 它可能略有你有你的DataTable也需要這樣做。

+0

這不是那麼容易,因爲它在另一臺計算機上,但在這裏的一些重要部分:http://codepaste.net/t5y9yy。不要得到你的解決方案 - 重新綁定?!並且我無法在datagridview/datatable中找到該DataBind。謝謝(: – gavra

+1

有沒有這樣的方法ataGridView.DataBind(); ..... –

1

好的,在使用google之後,我發現調用DataTable.Rows [index] .EndEdit()解決了這個問題。我不確定是否應該這樣做,但解決了問題。 (爲了調用該方法我使用DataGridView.CellEndEdit事件)。

3

您必須調用包含網格的窗體的Validate方法。此方法會影響網格,就像將焦點移動到網格中的另一行一樣。

+0

不起作用.... –