对于SOF上的类似问题,似乎没有确定的答案。如何检测单元格值已更改datagridview c#
我有一个DataGridView
绑定到一个BindingList<T>
对象(这是一个自定义对象的列表;也继承INotifyPropertyChanged
)。自定义对象每个都有一个唯一的计时器。当这些计时器通过一定的值(比如10秒)时,我想将单元格的前景色改为红色。
我正在使用CellValueChanged
事件,但此事件似乎从未触发,即使我可以看到计时器在DataGridView
上变化。是否有我应该寻找的不同事件?以下是我的CellValueChanged
处理程序。
private void checkTimerThreshold(object sender, DataGridViewCellEventArgs e)
{
TimeSpan ts = new TimeSpan(0,0,10);
if (e.ColumnIndex < 0 || e.RowIndex < 0)
return;
if (orderObjectMapping[dataGridView1["OrderID", e.RowIndex].Value.ToString()].getElapsedStatusTime().CompareTo(ts) > 0)
{
DataGridViewCellStyle cellStyle = new DataGridViewCellStyle();
cellStyle.ForeColor = Color.Red;
dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Style = cellStyle;
}
}
你不会100%清楚你想要做什么。我会根据我最好的猜测来回答,但是你能否编辑你的问题来说明你想要达到的目标。 – 2012-03-07 16:48:03
对不起,我应该更清楚了。用户不做编辑。不断解析CSV文件以从BindingList添加/更新/删除对象。假设我开始这个程序,并且DGV中只有一行。我会看到计时器每秒递增,当它通过10秒钟时,我想将文本的颜色更改为红色。 –
jpints14
2012-03-07 17:35:10
刚刚编辑我的答案与应该为你工作的东西。 – 2012-03-07 22:27:16