Devexpress gridcontrol绑定List对象集合之后,如何获取选中行对应的对象

 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);
        }

即数据源改变事件,在这个事件中触发一下行改变事件

猜你喜欢

转载自blog.csdn.net/sinat_41746494/article/details/81102968