2013-04-24 10 views
6

Meine Anwendung verwendet die Q- und A-Tasten, um zum nächsten Element in einer ObjectListView zu wechseln, was sehr gut funktioniert, solange der Benutzer die Listenelemente nicht mit einem der Spaltenköpfe sortiert . Wenn der Benutzer sortiert hat, führt das Drücken der Q/A-Tasten dazu, dass die Liste um die Listenelemente herum springt, da sie scheinbar die ursprüngliche Reihenfolge und nicht die aktuelle Reihenfolge verwendet.Nächstes/vorheriges Element in einer ObjectListView abrufen

So suche ich nach einer Lösung, die es dem Benutzer ermöglicht, zum nächsten Element zu wechseln, auch nachdem der Benutzer sortiert hat. Der Code, den ich zur Zeit habe (nur für die A-Taste) unter:

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

ich das gleiche Problem hier bekam .. und auch, wie man GetNextItem wenn die Elemente gruppiert wurden .. –

+0

Es Es gibt einige Methoden, die sich auf die Indizierung von Items beziehen, abhängig von der Anzeigereihenfolge wie 'GetNthItemInDisplayOrder()' und 'GetDisplayOrderOfItemIndex()', aber ich habe keine funktionierende Workaround gefunden. –

Antwort

3

Recht scheint dies zum Beispiel zur Arbeit Gehen Sie die angezeigten Artikel:

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

und die angezeigten Elemente nach oben:

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

Dies wird nicht gut für TreeListView funktionieren, da das Herunterfahren möglicherweise bedeuten kann, dass man aus dem aktuellen Elternteil springt. Ich möchte eine Null oder -1 zurückbekommen, wenn es keine weiteren Geschwister in dieser Richtung gibt. –

Verwandte Themen