private void gdvUpperRecord_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e)
{
int rowhandle = gdvUpperRecord.FocusedRowHandle;
if (rowhandle >= 0)
{
UpperInfo upperInfo = (UpperInfo)gdvUpperRecord.GetRow(rowhandle);
focusedUpperInfo = upperInfoList.Find(p => p.FUpperID == upperInfo.FUpperID);
}
}
其中upperInfoList是gridcontrol绑定的List
但是这个方法有个问题,如果当前选中行是第一行,更新了List,第一行不再是之前的变量了。但是这个事件并mei'没有触发。
因为默认是选中第一行的。所以当前选中的对象会出错。可以加一个DataSourceChanged事件
private void gdvUpperRecord_DataSourceChanged(object sender, EventArgs e)
{
gdvUpperRecord_FocusedRowChanged(null, null);
}
即数据源改变事件,在这个事件中触发一下行改变事件