There is 2 way
1. Full Drag-Drop
Call the EnableDragAndDropEvent() for panel (dialog)
Implement Drag-Drop handlers of the ListBoxObserver (ListBoxDragSourceObserver, ListBoxDropTargetObserver), at last
ListBoxDragStarting, ListBoxDragStarted, ListBoxDragEntered, ListBoxDragMoved, ListBoxDropped
2. Simple row dragging
Create an "drag" icon column. Fill it the DG::ListBox::DragIcon or any other.
Call list.EnableMouseMoveEvent() for the list box
Implement ListBoxMouseMoved( const DG::ListBoxMouseMoveEvent& ev, short* inArea );
When a mouse will be over the drag icon column, assign *inArea = DG::ListBox::DragArea.
Implement ListBoxItemDragged( const DG::ListBoxDragEvent& ev ) to handle dragging