RadTreeView would remember its state if you did not rebind it. Once you rebuild the entire treeview structure, the expanded state is lost. The approach you found yourself is quite applicable in you case.
I hope that it is acceptable for you to proceed this way.
the Telerik team