我有一个DevExpress(14.2)XtraGrid与GridView
。在一列中,我想展示一个复杂的值。所以我正在做这个异步。例如,如果我加载10000行,我不想为每行启动10000次异步调用来生成复杂值。我认为这将是很好的,如果只是可见的行正在更新。可见意味着它们实际显示给用户。如何获得DevExpress的所有可见行xtragrid
这是我试过至今(数据源=列表):
if (this._myDataSource != null)
{
foreach (MyObject object in this._myDataSource)
{
int rowHandle = this.myGridView.GetRowHandle(this._myDataSource.IndexOf(object));
var rowState = this.myGridView.IsRowVisible(rowHandle);
switch (rowState) {
case RowVisibleState.Visible:
object.LoadAsyncData;
break;
}
}
}
如果GridView.Layout
事件触发,我执行上面的代码。所以如果用户正在排序或分组,这将被执行。
但有一些好奇的行为。事件发生时,一些行似乎不可见。进一步的布局事件不会在滚动GridView
时触发。
最后两行没有加载,但它们是可见的。
有人知道如何处理这个问题,以及如何扩展这个滚动?