If you assign any object, or string for that matter, to any node that memory never gets freed when the control is disposed. With some careful test, I verified that if you sell all of the node references to the assigned object, the memroy will get reclared, but in total couning only 70-80% of the memory allocated in total in reclaimed. In my tests I use a pop-up editor that hosts a tree control that has dynamic data assigned to it. Every time you open hte pop-up editor there is a 10-20% leak in the total memory allocation of the pop-up editor. This is true even when 70% of the memory used comes from 1 meg string objects that I assign to values and tags on nodes and cells. Yet when profiles, the large string has been GCed.
Since the leak is rahter substantial and this product is rather mature... I can only assume that I am missing a cleanup function that needs to be called on either the nodes or the tree control besides dispose to properly reclaim memory. I noticed that nodes and cells also have a dispose method on them, I assume that this is called when the tree control is disposed. I am not removing any nodes from the tree control, so the only node removal in my test case should occur on a dispose... In my real application nodes and created, copied and removed.
If anyone has any documentation they can point me to for memory management of the win tree I would appreciate, in our one product app, memory usage is crossing 2 gigs in under 30 minutes... :(