Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > WPF и Silverlight > Пользовательский панель


Автор: Magnetic 26.4.2009, 00:02
Разбирался в коде DataGrid WPFToolkit. Насколько я понял, размещение ячеек определяется в методах ArrangeOverride, MeasureOverride, контейнер наследуется от Panel, а текстовые значения отображаются TextBlock'ами. Написал свою панельку по аналогии с DataGrid, в которой размещал добавленные в нее TextBlock'и в три колонки с возможностью ресайзинга колонок мышью. Так вот, если рядов 1000, то рейсайз колонок мышью в DataGrid почти без торомозов, в моей панели тормоза сильные. Код DataGrid слишком сложный, чтобы понять за счет чего у них такая скорость при ресайзинге колонок. Может подскажете как написать панель так, чтобы в упомянутых условиях тормоза были минимальные?

Автор: -Mikle- 26.4.2009, 03:05
Цитата(Magnetic @  26.4.2009,  03:02 Найти цитируемый пост)
Так вот, если рядов 1000, то рейсайз колонок мышью в DataGrid 

Что-то я сомневаюсь, что в нем для всех 1000 строк сразу создаются все TextBlock. Создаются, скорее всего, только видимое на экране кол-во, а данные загружаются в них из источника, при скролинге. Я очень давно (еще на VB6.0) вручную такой фигней занимался. Там кол-во строк могло и до 400 тысяч доходить, а страндартный FlexGrid накладывал ограничения на общее кол-во строк (о пейджинге я тогда даже не догадывался smile ) и я в нем создавал фиксированное количество строк и динамически грузил туда данные. Думаю это общий подход к задаче.

Автор: Magnetic 26.4.2009, 16:27
Спасибо за совет, попробую сделать как вы описали.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)