Я не уверен, что у вас возникла та же проблема, но у меня, похоже, такая же проблема с использованием расширенной сетки данных, она возникает в тех случаях, когда поставщик данных приемлем как несколько типов, компоненты выполняют некоторую дополнительную работув фоновом режиме, чтобы обернуть вещи во что-то Hierarchical (HierarchicalData или HierarchicalCollectionView) и при этом вызов установщика поставщика данных не является синхронным (поэтому он вернется до фактического назначения внутреннего свойства, хранящего поставщик данных).В этом случае я использовал callLater с умеренным успехом, callLater, как правило, плохая практика, но в основном добавляет функцию в список функций для вызова после выполнения фоновой обработки, поэтому предполагается, что что-то в установщике поставщика данных называется UIComponent.suspendBackgroundProcessing() и что впоследствии он вызовет UIComponent.resumeBackgroundProcessing (), а затем выполнит список функций, добавленных с помощью callLater.В качестве альтернативы вы можете использовать setTimeout (someFunction, 1000).
Оба эти «взлома», реальное решение состоит в том, чтобы покопаться в коде фреймворка и посмотреть, что он на самом деле делает, когда вы указываете ему установить поставщик данных.Везде, где вы видите, что он на самом деле установил поставщик данных, вы можете расширять этот класс и отправлять событие, которое вы можете прослушивать, чтобы запустить функцию для выбора после этой точки.
Если у кого-то есть лучшее решение, пожалуйста,все значит поправьте меня (я бы хотел получить лучший ответ, чем этот)