I use profiler and found that 70% time systems spends in PopulateInternalList method of QueryableCollectionView.
Also I found that when I collapse or extand only one item. RadTreeListView re-populates internal collection. AS a result expanding only one item take same time as expanding all. It's a huge amount time for me.
For Expand one, I did some additional research and found on each collapse/expand RefreshViewAndParents method of HierarchicalCollectionView is called. This method has following implementation:
(IEnumerator<HierarchicalCollectionViewBase> enumerator = childView.SelfParentsAndRoot.GetEnumerator())
Statemet childView.SelfParentsAndRoot returns two lines:
- Expanding/Collapsing line
- Whole root collection
As a result whole collection is refreshed
PS. I use 2011 Q1