We have an application with a workflow where users open a grid to view their work items and from that grid open and interact with these work items. The grid automatically refreshes the data on save if a user changes the value of any of the properties shown in the grid. As long as the grid is open, the memory allocation grows due to the EditorButtonUIElement not being disposed because it is rooted by the SubObjectPropChangeEventHandler and being recreated if a refresh is triggered. So the number of instances and held memory continues to grow as long as the grid is open. Closing the grid does release this memory and so that is our current workaround, but what can we do to prevent the refresh of the grid from eating up memory until the grid is closed?
I have discussed the implementation of UltraGrid with my team and I do not see anything that would cause a leak. To better understand this I will need a sample that reproduces the leak that I can profile. Please provide me with a sample demonstrating the approach you are using to refresh the datasource that reproduces the leak.
Please let me know if you have any questions.