![]() |
|
||||||||||
|
|||||
|
Регистрация: Apr 2007
Сообщений: 54
|
Доброе утро/день/вечер
![]() Мне надо создать такой компонент на основе DataGrid чтобы данные в нем разбивались по группам (группа - несколько строк, объединенных каким то значением). Перед первой строкой группы должна быть строка, содержащая элементы управления для скрытия/отображения строк группы и отображения информации о ней. Только эти элементы должны быть на всю строку, а не в одной ячейке, что собственно и вызывает проблему - как разместить данные на всю строку! Пока я придумал только 2 варианта: 1) Накладывать поверх строки непрозрачный Canvas и в нем размещать необходимые элементы управления. Минусы - придется это делать в абсолютных координатах и поэтому сложновато будет сделать чтоб канвас попадал именно на нужную строку.. И скрывать/отображать строки группы будет проблематично... И вообще, это не очень красивое решение ![]() 2) Сделать этот компонент из нескольких таблиц, чтобы каждая группа была в своей таблице. Например в VBox поместить таблицу, состоящую только из заголовка, потом компонент растянутый на всю ширину таблицы, отображающий информацию о следующей группе, далее таблицу без строки заголовка, содержащую данные первой группы, и т.д. Но тут минус - сложно синхронизовать таблицы (например изменение размеров колонок), их общую ширину и т.д. Может как-нибудь можно просто объединить ячейки в одной из строк и поместить туда данные? Ну типа как в HTMLe - <td colspan="5">...</td> Примерно что должно получиться - в аттаче ![]() |
|
|||||
|
Регистрация: Apr 2007
Сообщений: 54
|
VBox это конечно хорошо, но мне нужна функциональность DataGrid (изменять ширину стлобцов, менять их местами и т.д.) + возможность вставлять компоненты на всю строку...
Я же рисунок приложил - самый обычный DataGrid, но между группами вставлен собственный компонент |
|
|||||
|
Ищи компонент TreeDataGrid. Имхо то, что тебе нужно.
|
|
|||||
|
Регистрация: Apr 2007
Сообщений: 54
|
Цитата:
он умеет скрывать/показывать строки... замечательно.. но главная проблема у меня это как разместить свой компонент на ВСЮ ШИРИНУ строки.. в TreeDataGrid это не решается(( |
|
|||||
|
тогда делай по второму варианту. Если кол-во столбцов фиксированное - то это не проблема. binding спасет тебя в случае изменения ширины и прочего.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 21:29. |
|
|
« Предыдущая тема | Следующая тема » |
|
|