![]() |
Custom DataGrid
Вложений: 1
Доброе утро/день/вечер :)
Мне надо создать такой компонент на основе DataGrid чтобы данные в нем разбивались по группам (группа - несколько строк, объединенных каким то значением). Перед первой строкой группы должна быть строка, содержащая элементы управления для скрытия/отображения строк группы и отображения информации о ней. Только эти элементы должны быть на всю строку, а не в одной ячейке, что собственно и вызывает проблему - как разместить данные на всю строку! Пока я придумал только 2 варианта: 1) Накладывать поверх строки непрозрачный Canvas и в нем размещать необходимые элементы управления. Минусы - придется это делать в абсолютных координатах и поэтому сложновато будет сделать чтоб канвас попадал именно на нужную строку.. И скрывать/отображать строки группы будет проблематично... И вообще, это не очень красивое решение :) 2) Сделать этот компонент из нескольких таблиц, чтобы каждая группа была в своей таблице. Например в VBox поместить таблицу, состоящую только из заголовка, потом компонент растянутый на всю ширину таблицы, отображающий информацию о следующей группе, далее таблицу без строки заголовка, содержащую данные первой группы, и т.д. Но тут минус - сложно синхронизовать таблицы (например изменение размеров колонок), их общую ширину и т.д. Может как-нибудь можно просто объединить ячейки в одной из строк и поместить туда данные? Ну типа как в HTMLe - <td colspan="5">...</td> Примерно что должно получиться - в аттаче :wacko: |
как вариант - юзай модифицированый VBox в который пихай свой компонент который реализует именно эти групировки
VBox сам расставит элементы друг за другом независимо от их размеров... |
VBox это конечно хорошо, но мне нужна функциональность DataGrid (изменять ширину стлобцов, менять их местами и т.д.) + возможность вставлять компоненты на всю строку...
Я же рисунок приложил - самый обычный DataGrid, но между группами вставлен собственный компонент |
Ищи компонент TreeDataGrid. Имхо то, что тебе нужно.
|
Цитата:
он умеет скрывать/показывать строки... замечательно.. но главная проблема у меня это как разместить свой компонент на ВСЮ ШИРИНУ строки.. в TreeDataGrid это не решается(( |
тогда делай по второму варианту. Если кол-во столбцов фиксированное - то это не проблема. binding спасет тебя в случае изменения ширины и прочего.
|
| Часовой пояс GMT +4, время: 09:34. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.