Я не думаю, что есть способ сделать это автоматически (хотя мне никогда не приходилось использовать элемент управления деревом). Я думаю, что вам лучше всего расширить контроль над деревом и самостоятельно управлять записью состояния.
Например, я бы, возможно, переопределил свойство данных, чтобы вы могли запустить функцию проверки состояния, прежде чем устанавливать новый объект данных в компоненте. Глядя на помощь есть методы
isItemOpen(item:Object):Boolean,
и
expandItem(item:Object, open:Boolean, animate:Boolean = false, dispatchEvent:Boolean = false, cause:Event = null):void
Вам нужно рекурсивно пройти через каждый узел и проверить, открыт ли он, и сохранить состояние для этого узла. Затем, когда он будет перерисован с новым поставщиком данных, рекурсивно пропустите новые узлы и проверьте, были ли какие-либо из них ранее открыты, и если они были, разверните их.