DevExpress XtraGrid - как обновить сетку

Я использую сетки DevExpress, есть способ сохранить макет, но у меня есть дополнительный вопрос: можно ли обновить уже сохраненный макет, не перезаписывая его, а только обновляя, например, столбцы, которые были изменены?

3 ответа

Я не могу понять, какова цель обновления сохраненного макета.

Однако, когда вы вызываете savelayout после изменения столбцов, он полностью записывает текущую информацию, относящуюся к макету (состояние отображения столбцов, порядок просмотра столбцов, информацию о сортировке и т. Д.), В реестр / поток /XML и не имеет возможности просто обновить существующую информацию о макете.

Если вы ранее применили макет из уже сохраненного файла, то перезапись того же файла (с информацией о макете) будет эквивалентна вашему требованию - обновление сохраненного макета.

Могу ли я предложить вам создать копию этого файла макета? Таким образом, вы можете обновить копию и сохранить оригинал.

Этот вопрос задан давно, но есть возможность обновить существующие файлы макетов в DevExpress. Вы должны обработать два события: LayoutUpgrade и BeforeLoadLayout. В начале вы должны указать вашему макету номер версии со свойством OptionsLayout.LayoutVersion. Когда вы меняете макет, скрываете некоторые столбцы, добавляете новые столбцы, добавляете новые фильтры... меняйте номер LayoutVersion. Когда ваше приложение запускается, DevExpress сравнивает существующий номер LayoutVersion с новым, если есть разница, запускается событие LayoutUpgrade.

DevExpress описывает это поведение здесь: Ugrading Layout

Я надеюсь, это поможет.

Другие вопросы по тегам