/// <summary> /// Возвращает таблицу вложенных элементов для таблицы, при этом раскрывая её и проматывая до её начала /// </summary> /// <param name="grid">Таблица, таблицу вложенных элементов которой нужно получить</param> /// <param name="relationalColumn">Название столбца с подробностями</param> /// <param name="recordIndex">Позиция записи в таблице</param> /// <param name="detailsColumn">Номер столбца в таблице вложенных элементов</param> public static SfDataGrid GetDetailsViewGridWUpd(this SfDataGrid grid, string relationalColumn, int recordIndex, int detailsColumn = 1) { int rowIndex = grid.ResolveToRowIndex(recordIndex); RecordEntry record = grid.View.Records[recordIndex]; if (!record.IsExpanded) { grid.ExpandDetailsViewAt(recordIndex); } int vIndex = grid.DetailsViewDefinition.FindWithIndex(it => it.RelationalColumn == relationalColumn).index + rowIndex + 1; grid.ScrollInView(new RowColumnIndex(vIndex, detailsColumn)); SfDataGrid view = grid.GetDetailsViewGrid(recordIndex, relationalColumn); if (view != null) { return(view); } grid.GetViewManager().BringIntoView(vIndex); grid.ScrollInView(new RowColumnIndex(rowIndex, detailsColumn)); return(grid.GetDetailsViewGrid(recordIndex, relationalColumn)); }