Модераторы: gambit, Kefir, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> WPF - Комплексная таблица 
:(
    Опции темы
CYBERDREAM
Дата 15.11.2010, 18:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I think, there4 I am
***


Профиль
Группа: Завсегдатай
Сообщений: 1096
Регистрация: 31.10.2006
Где: CyberLand

Репутация: 3
Всего: 28



Приветствую всех. Есть таблица (~16 колонок, 90 строк минимум). Некоторые ячейки являются смерженными, либо по вертикали, либо по горизонтали. 
Сейчас сделано через грид, в ячейки которого вставлены TextBox'ы, а для сливания ячеек RowSpan, ColumnSpan используется. Проблема в том, что это ресурсоемко, отжирает немало памяти. 
Можно ли сделать подобный эффект через DataGrid
Таблица создается динамически.

Это сообщение отредактировал(а) CYBERDREAM - 15.11.2010, 18:51


--------------------
Ищем .Net, Java, Javascript разработчиков, Кипр, Лимассол. (знание английского необязательно)
Telegram, skype: kuchuk.artiom
PM MAIL WWW   Вверх
CYBERDREAM
Дата 16.11.2010, 09:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I think, there4 I am
***


Профиль
Группа: Завсегдатай
Сообщений: 1096
Регистрация: 31.10.2006
Где: CyberLand

Репутация: 3
Всего: 28



Так и хочется написать HEEEEEEEEEEEEELP smile 


--------------------
Ищем .Net, Java, Javascript разработчиков, Кипр, Лимассол. (знание английского необязательно)
Telegram, skype: kuchuk.artiom
PM MAIL WWW   Вверх
SergeyLoginov
Дата 16.11.2010, 11:34 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 28.9.2009
Где: Иваново

Репутация: 4
Всего: 4



Можно. Но с рядом естественных ограничений (невозможность перестановки столбцов, сортировки и т.п.) и с изменением исходного кода самого DataGrid. 
DataGrid от Microsoft, к сожалению, не позволяет объединять ячейки :(
Я в свое время реализовал такую фичу. У меня без изменения исходников не получилось. У Вас тоже вряд ли получится. smile Код, к сожалению, не могу предоставить, не мне принадлежит.
Ключевые моменты: изменение методов ArrangeOverride(...), MeasureOverride(...) и OnRender(...) в классах DataGridCell и DataGridCellsPresenter, а также метода ArrangeChild(...) в классе DataGridCellsPanel. Ну и плюс код для хранения информации об объединении.
PM MAIL   Вверх
CYBERDREAM
Дата 16.11.2010, 11:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I think, there4 I am
***


Профиль
Группа: Завсегдатай
Сообщений: 1096
Регистрация: 31.10.2006
Где: CyberLand

Репутация: 3
Всего: 28



а что касается нагрузки, сильно жрет оперативку?

Добавлено через 2 минуты и 9 секунд
сортировка и изменение порядка столбцов не нужны


--------------------
Ищем .Net, Java, Javascript разработчиков, Кипр, Лимассол. (знание английского необязательно)
Telegram, skype: kuchuk.artiom
PM MAIL WWW   Вверх
SergeyLoginov
Дата 16.11.2010, 13:46 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 28.9.2009
Где: Иваново

Репутация: 4
Всего: 4



Касательно нагрузки, лично у меня получилось довольно плачевно, т.к. пришлось отключить виртуализацию строк/столбцов при поддержке объединения ячеек. Соответственно как и в гриде визуальные элементы всех ячеек грузятся в память сразу. Дело год назад было, я уж подзабыл первопричину сего ограничения, но причина есть (вроде бы из-за того, что надо знать размеры скрытых ячеек при генерации видимых на случай, если вдруг есть перекрытие их друг другом). Нас это устроило только потому что с объединением нам требуются только небольшие таблицы. В принципе, если усилия приложить, думаю, можно реализовать с виртуализацией.  Задача нетривиальная, но по моей оценке скорее решаемая, чем нет.

Добавлено через 14 минут и 31 секунду
Это я сужу о своей реализации. Я так прикинул, пути решения моей проблемы вроде есть. У Вас может и реализация будет такой, что виртуализация будет работать естественным образом. В общем, если очень надо, сделать можно. smile
PM MAIL   Вверх
CYBERDREAM
Дата 16.11.2010, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I think, there4 I am
***


Профиль
Группа: Завсегдатай
Сообщений: 1096
Регистрация: 31.10.2006
Где: CyberLand

Репутация: 3
Всего: 28



Ну если очень надо, то можно много чего) вопрос насколько)


--------------------
Ищем .Net, Java, Javascript разработчиков, Кипр, Лимассол. (знание английского необязательно)
Telegram, skype: kuchuk.artiom
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | WPF и Silverlight | Следующая тема »


 




[ Время генерации скрипта: 0.0902 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.