У меня есть wxGrid, который я заполняю динамически. Я хотел бы сохранить некоторую информацию с каждой строкой, которая не должна отображаться пользователю. Каков наилучший способ связать данные со строкой? Должен ли я просто создать скрытый столбец или есть лучший способ?скрытая информация в wxGrid
ответ
Создание скрытого столбца - самый быстрый, но очень уродливый метод. Если вы можете оправдать усилия, то вам лучше создать свой собственный базовый класс таблицы grid. Ваш собственный wxGridTableBase -полученный класс может хранить любую информацию, в которой вы нуждаетесь, без необходимости показывать ее в сетке. К сожалению, документация для этого класса разрежена или почти отсутствует.
Для примера см. Демонстрацию сетки в каталоге образцов wxWidgets, в частности класс BugsGridTable. Вы заметите, что вы не обязательно сохраняете строки, которые будет отображаться сеткой, но вы можете отформатировать свои данные в методе GetValue (). Это может быть намного лучше, как с точки зрения потребления памяти, так и потому, что вы можете изменять формат отображаемых данных «на лету».
Переключение на базовый класс таблицы настраиваемых таблиц оказало большое влияние на скорость, потребление памяти и функциональность для сетки данных набора результатов от FlameRobin, инструментария администрирования реляционной базы данных Firebird. Вы всегда можете проверить его исходный код, как мы используем wxGrid.
Сохраните значение в ярлыке строки с помощью SetRowLabelValue и скройте метки строк.