Вот ссылка на DevExpress, описывающая, что вы хотите:
https://www.devexpress.com/Support/Center/Question/Details/Q96738
Но, на мой взгляд, у этого есть некоторые недостатки.Сначала это довольно медленно с большими наборами данных.Во-вторых, возникает «мерцание», когда ваш мастер-уровень часто меняется и сетка должна быть перерисована.Возможно, можно установить фильтр для вашего набора данных деталей, чтобы детали были «пустыми», когда ваш nmaster имеет правильное условие.В TcxGrid есть свойство, позволяющее автоматически скрывать пустые вкладки сведений.
В некотором смысле вне контекста, но в случае, если ссылка снова отключится:
1) Как я могувызвать Level3 OnGetGridView, поскольку представление уровня 3 не изменилось, как я ожидал
Событие OnGetGridView вызывается только один раз, когда деталь впервые раскрывается.После того, как обработчик события был выполнен, указанный клон GridView создается и кэшируется, чтобы событие не сработало при следующем расширении той же основной записи.Если вам нужно, чтобы событие было вызвано позднее, вы можете очистить все подробные клоны, вызвав метод ClearDetails основного метода DataController или методы ClearDetailLinkObject.
Вы можете найти эту информацию в разделе «TcxGridLevel.OnGetGridView» документации ExpressQuantumGrid..
2) Я также изменяю заголовки Level2 и Level3 для каждого отображаемого им Gridview, но изменение происходит не автоматически, иногда требуется подробное представление и снова открывать, чтобы изменить подпись.
Если мы не ошибаемся, вы изменяете заголовок уровня в его обработчике события OnGetGridView.Если это так, новая подпись не применяется немедленно, потому что рисование соответствующего элемента не завершено.В качестве обходного пути вы можете выполнить «отложенную» операцию, опубликовав собственное сообщение.Я приложил пример проекта, чтобы проиллюстрировать этот подход в действии.Надеемся, что он будет служить вашим потребностям, и его адаптация не будет проблемой.