我有一個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
時觸發。
最後兩行沒有加載,但它們是可見的。
有人知道如何處理這個問題,以及如何擴展這個滾動?