Восстановить сфокусированную строку DevExpress XTRAG Grid после обновления источника данных

#c# #winforms #hierarchy #xtragrid

#c# #winforms #иерархия #xtrag grid

Вопрос:

Я использую DevExpress XTRAG Grid.У меня есть список объектов в качестве источника данных сетки, каждый объект может содержать (или нет) список похожих объектов и так далее. Таким образом, у меня есть своего рода иерархия. Таким образом, сетка для каждого внутреннего списка объектов создает дочернее представление. Когда я добавляю новый объект в datasource и вызываю RefreshDatasource (), сетка полностью сворачивается, и я должен снова перейти по уровням сетки к моей ранее сфокусированной строке.

Есть ли какой-либо способ восстановить сфокусированную строку после обновления источника данных на любой подуровень дочерних представлений?

Комментарии:

1. Вы обращались за помощью на форум поддержки DevExpress? У них масса тем, и я пока смог найти ответы на все свои вопросы, кроме одного. devexpress.com/Support/Center/Question/List/1

Ответ №1:

Я думаю, что эта статья послужит вам хорошим началом для успешного решения вашей задачи 😉 В нем описывается способ сохранения состояния просмотра всех (дочерних) представлений в XTRAG Grid с помощью примера кода.

Это целая куча кода, но вы можете легко скопировать / вставить его, чтобы проверить и протестировать.

Ответ №2:

Здесь вам необходимо сохранить сфокусированную строку перед добавлением / вставкой нового объекта в существующие данные сетки и операцией обновления. После завершения операции обновления данных сетки вы можете установить ранее сфокусированный объект, установив дескриптор сфокусированной строки. Чтобы получить дескриптор текущей строки в случае сетки MasterDetail, вам следует перейти по ссылке ниже: Как получить дескриптор родительской записи / строки в сетке master / detail