Получение позиции элемента в TreeDataGrid

Подскажите как можно получить реальную позицию элемента в TreeDataGrid с учетом текущей сортировки (или хотя бы следующий элемент в списке по данному) ? Пробовал использовать

treeGrid.getItems().indexOfItem(entity)

и

treeGrid.getItems().getItemByIndex(index)

но обе функции возвращают какие то странные (неправильные) значения, хотя значения меняются после применения сортировки путем клика по столбцу. Так что по ним нельзя например получить следующий элемент в списке вызывая:

treeGrid.getItems().getItemByIndex(index + 1)

Добрый день!

Методы DataGridItems#indexOfItem и DataGridItems#getItemByIndex делегируют свое выполнение фактическому источнику данных (CollectionContainer или Datasource), т.о. возвращаемый индекс соотвествует индексу объекта в отсортированном списке сущностей без учета вложенности. В свою очередь TreeDataGrid берет отсоритрованный список и создает на его основе древовидную структуру, которая не имеет глобального индекса для объектов и сортировка влияет только на порядок объектов внутри одного уровня вложенности и родителя.

В данной ситуации Вы можете реализовать поиск индекса объекта с учетом иерархии самостоятельно, начиная обход с корневых объектов - treeDataGrid.getItems().getChildren(null).

Глеб

2 симпатии