Вот краткое изложение того, что я в итоге реализовал: Все настройки хранятся в базе данных. При переходе к экрану я читаю настройки экрана для текущего пользователя и использую его для инициализации простого поставщика состояния на основе памяти в процедуре init_component. Поставщик состояния прослушивает соответствующие события и обновляет состояние в памяти. Пользовательский интерфейс имеет меню настроек с параметрами и сохранить / сбросить. Опция сохранения сохраняет состояние памяти на сервере. Сброс удаляет состояние из базы данных и восстанавливает экран с настройками по умолчанию. Кажется, это хорошо работает.
К вашему сведению: другие ошибки, которые я нашел:
- сетка не имеет события для замены фильтра
- комбинированные окна (среди прочих) не имеют кода для сохранения состояния, вы должны написать свой собственный.
- состояние из сетки расточительно (исходная проблема)
Я применяю одну настройку состояния для каждого элемента управления с состоянием на экран, обычно есть только одна сетка, но на одном экране есть комбо плюс сетка. Вероятно, было бы лучше связать их, но нехватка времени ...