简体   繁体   English

在RefreshDatasource之后还原DevExpress XtraGrid的焦点行

[英]Restore focused row of DevExpress XtraGrid after RefreshDatasource

I'm using DevExpress XtraGrid.I have a list of objects as grid datasource, each object can contain (or not) a list of similar objects and so on. 我正在使用DevExpress XtraGrid。我有一个对象列表作为网格数据源,每个对象可以包含(或不包含)类似对象的列表,依此类推。 In this way I have kind of hierarchy. 这样,我就有了某种等级制度。 So grid for every inner list of objects creates a child view. 因此,网格为每个内部对象列表创建了一个子视图。 When I add new object to datasource and call RefreshDatasource() grid completely collapses and I must again drill down through grid levels to my previously focused row. 当我将新对象添加到数据源并调用RefreshDatasource()时,网格完全崩溃,因此我必须再次深入网格级别到以前关注的行。

Is there some way to restore focused row after datasource refresh to whatever sublevel of child views? 在数据源刷新到子视图的任何子级别之后,是否可以通过某种方法将焦点所在的行还原?

Here you need to maintain focused row before adding/inserting new object in existing grid data & refresh operation. 在这里,您需要在添加/插入现有网格数据和刷新操作中的新对象之前保持焦点突出的行。 Once you done with grid data update operation you can set earlier focused object by setting focused row handle. 完成网格数据更新操作后,您可以通过设置聚焦行句柄来设置较早的聚焦对象。 To obtain current row handle in case of MasterDetail grid you should follow link below: How to get a parent record/row handle in the master/detail grid 要获得MasterDetail网格的当前行句柄,您应该点击以下链接: 如何在master / detail网格中获取父记录/行句柄

I think this article will give you a good start at succeeding in your challenge ;) It describes a way to preserve the view state of all (child) views in a XtraGrid with sample code. 我认为本文将为您成功应对挑战提供一个良好的开端;)它描述了一种使用示例代码在XtraGrid中保留所有(子)视图的视图状态的方法。

It's a whole bunch of code but you can easily copy / paste it to check it out and test it. 这是一堆完整的代码,但是您可以轻松地将其复制/粘贴以将其检出并进行测试。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM