我正在使用VS 2008/C#並綁定本地List輔助類作爲DataGridView控件的DataSource。調用我的List helper類中的Remove()方法會觸發DataGridView的CellFormatting事件,這很有意義(有點)。刪除最後一行數據綁定DataGridView C#
當刪除網格中最後一行的DataBoundItem(只要網格有多行)時,DataGridView的Rows集合在該事件觸發前不會更新。因此,在CellFormatting事件處理程序中,由於Rows集合太大,我得到一個IndexOutOfRangeException。
我試着刪除使用DataGridView.Rows.Remove()方法的行,並使用BindingSource進行綁定,而不是直接將List綁定爲數據源。
我通過Google發現了一些對這種情況的引用,但是答案並不是即將出現,或者說在DataGridView或DataGridView.Rows集合上使用Delete()方法 - 兩者都不存在。
排序似乎也不是問題,因爲執行/不執行排序會得到相同的結果。
如果DataGridView只包含一行,那麼「最後一行」是唯一的例外,那就是一切正常。
設置爲空,並返回到集合工作。 – Pat 2009-06-12 22:40:09