Как сделать так, чтобы jtable TransferHandler выделял строку при реализации DnD? - PullRequest
0 голосов
/ 30 января 2020

Как выделить строку под курсором при перетаскивании?

Мне нужно определить строку в jtable, на которую я перетаскиваю, а не позицию вставки, которую обработчик переноса по умолчанию предоставляет из box.

Определив саму строку, я ожидаю, что importData (поддержка TransferSupport) сможет обработать мелкие детали.

Ответы [ 2 ]

0 голосов
/ 02 марта 2020

myTable.setDropMode (DropMode ....); это то, к чему я стремился.

Варианты:

 DropMode.USE_SELECTION
    DropMode.ON
    DropMode.INSERT
    DropMode.ON_OR_INSERT

Последний (DropMode.ON_OR_INSERT) дал мне больше, чем мне было нужно, (что хорошо) - возможность различать guish между вставкой строки между другими строками И указанием удаления данных в строку. Прежде чем поставить вопрос, мне следовало провести дополнительные исследования.

0 голосов
/ 30 января 2020

Это известная проблема в темах для RadGridView. В настоящее время ControlTemplate для GridViewRow не имеет привязок шаблонов для BorderBru sh и BorderThickness. Это означает, что внесенное вами изменение не было распространено на элемент Border, который находится в шаблоне GridViewRow. Мы исправим это в нашем официальном релизе.

Однако есть способ, которым вы можете сделать это в текущей ситуации. Вы должны просто найти границу в шаблоне. Вот пример того, как этого добиться:

var border = rowItem.ChildrenOfType<Border>().FirstOrDefault();

if(border != null) {

    border.BorderBrush = new SolidColorBrush(Colors.Red);
    border.BorderThickness = new Thickness(1);

}
...