datagridview的datasource中的值改变,激发什么事件?
我有一个datagridview,绑定了一个datatable,绑定后datatable中的值改变,我想使数据改变的行切换另一种背影颜色,我需要用什么事件才能激发呢?另datatable不需重新绑定. --------------------编程问答-------------------- CellValueChanged事件--------------------编程问答-------------------- System.Data.DataTable table = new System.Data.DataTable();
private void dgvTest_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
this.dgvTest.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.Red;
}
table.RowChanged += new System.Data.DataRowChangeEventHandler(table_RowChanged);
void table_RowChanged(object sender, System.Data.DataRowChangeEventArgs e)
{
// Get row index by property e.Row
} --------------------编程问答--------------------
. --------------------编程问答-------------------- 学习一下。正需要这些资料。 --------------------编程问答-------------------- 来参观的,帮顶. --------------------编程问答--------------------
这样好像并不能激发这个事件,我在做时因为datasource已经绑定了,只是datatable内部的数据值改变,datagridview好像并没有发现其cell中的值已经改变了. --------------------编程问答-------------------- DataBindingComplete事件!! --------------------编程问答--------------------
我试了一下,e.Row获取不到行号,只能获取到一个实际改变过的dataRow. --------------------编程问答--------------------
我的datatable完成绑定时数据并没有改变,是完成了绑定后,其他的进程改变了我的datatable. --------------------编程问答--------------------
用DataBindingComplete事件没问题,你试一试吧,只要改变datatable,这个事件就会触发 --------------------编程问答--------------------
你的datatable内部的数值是怎么改变的?不是在DataGridView中修改的? --------------------编程问答-------------------- 你的DataTable中的数据是被另一个进程修改的?
------------------------
这样的话修改完后的dataTable应该不会马上在你的datagridview上体现出来吧?
也就是说你要重新绑定才会体现出来. --------------------编程问答--------------------
如果修改datatable里面的数据,必须重新bind --------------------编程问答--------------------
我是用BackgroundWorker来更新datatable的,用主进程在更新主界面上的进度条等.当datatable中的值改变时,datagridview界面中的值也就随之改变了,不需重新Bind,我试过了重新Bind,但也没有激发上面的那些事件.
补充:.NET技术 , C#