My theory is that the BBS is somehow dynamically creating columns in the grid or tree at runtime, but not manually disposing of them when it's unloaded. DevExpress basically expects you to dispose of everything, so I'm wondering if somehow the BBS is still linked to the DevExpress controls and preventing them from being released from memory correctly. Is this a possibility?
I can open and close a test form I have created without filling the BO that is linked to the BBS, and it releases all memory correctly when the form is closed. If I fill the BO when opening the form, it will not release all memory once closed. Any ideas here?
Where does MyOtherBO get disposed of? It's a BO instantiated as a class level variable, inside of another BO. It should go in the dispose for MyBO, but that is being generated inside the Designer code and will get overwritten if I regenerate the partial.
That is what I was referring to when talking about the BaseBO. All of your BOs should inherit from a BaseBO that inherits BusinessLayer. This allows you to provide base level logic for this very type of thing without having to code it for each individual BO and at the risk of the Dispose being overwritten.