簡體   English   中英

獲取ObjectListView中的下一個/上一個項目

[英]Get next/previous item in an ObjectListView

我的應用程序使用Q和A鍵移動到ObjectListView中的下一個項目,只要用戶不使用其中一個列標題對列表項進行排序,該項就可以正常工作。 如果用戶已排序,則按Q / A鍵會使列表跳轉到列表項,因為它似乎使用原始訂單而不是當前訂單。

所以我正在尋找一種解決方案,即使在用戶排序后,用戶也可以移動到下一個項目。 我目前擁有的代碼(僅適用於A鍵)如下:

if (e.KeyCode == Keys.A)
{
  OLVListItem next = listSession.GetNextItem(listSession.SelectedItem);
  if (next == null)
  {
    return;
  }

  listSession.SelectedObject = (Session)next.RowObject;
  listSession.EnsureModelVisible((Session)next.RowObject);
}

這似乎工作,例如下去顯示的項目:

int index = listSession.GetDisplayOrderOfItemIndex(listSession.SelectedItem.Index);
OLVListItem next = listSession.GetNthItemInDisplayOrder(index + 1);

並上顯示的項目:

int index = listSession.GetDisplayOrderOfItemIndex(listSession.SelectedItem.Index);
OLVListItem next = listSession.GetNthItemInDisplayOrder(index - 1);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM