日期:2014-05-18  浏览次数:21346 次

DataGridView 和 DataTable绑定后, 当DataTable的一行数据变动时,DataGridView如何对改变的数据加亮?
问题描述很简单:
DataGridView 和 DataTalbe 绑定了.

当DataTable的内容改变时, DataGridView也会自动改变内容, 但是这种改变不会触发 CellValueChanged

但是我现在想要可以触发的Event, 而且要知道是第几行,第几列的那种.

谢谢.

------解决方案--------------------
我感觉是DataGridView的值改变了,你可以得到第几行,第几列,
DataTalbe 的值改变了,不一定能得到阿。
因为DataGridView绑定的是dataview阿。
不知道对不对。
------解决方案--------------------
.RowChanged += new DataRowChangeEventHandler(DA_RowChanged);
static void DA_RowChanged(object sender, DataRowChangeEventArgs e)
{
DataRow dr = (DataRow)sender;

拿到这个dr与view匹配

}
------解决方案--------------------
最簡單的辦法就是重新綁定一下
------解决方案--------------------
DataRowView drv = (DataRowView)this.BindingContext[dataGridView1.DataSource, gridTable.TableName].Current;
DataRow dr = drv.Row;
------解决方案--------------------
不用想了,重新绑定吧,如果想知道是几行几列只有在与原数据比较后得到哪些改变
------解决方案--------------------
“但是我现在想要可以触发的Event, 而且要知道是第几行,第几列的那种.”

你的目的是什么?
------解决方案--------------------
这样有问题:第一与第二次数据变化时,用颜色可以区分,如果后面数据都不变化,
此时单元格还是变化后的颜色,就无法区分了!

对于用单元格颜色来区分数据,一般的做法:

当大于或小于某个值,处于非正常区间,就变成一种颜色;
数据回复正常区间值,颜色也恢复正常!