We are seeing performace issues when dealing with the xamdockmanager. Here is a list of the things that we see:
I have tried tracking these issues down, but could find no solution to the problem. Attached is a SS of the summary for the profiler in vs2010. This was a short session where all I did was open 3 windows, all of which had xamdatagrids, and docked/undocked them. It is showing the major hotpaths during this session to be internal to infragistics and wpf framework itself.
Do you have any idea how to improve the performance we are seeing? The only solution I can possible guess is that we need to trim our visual tree.
Well I cannot be absolutely sure that there isn't something that the dockmanager is doing to cause this but from a high level, the dockmanager is really just reparenting elements which as I mentioned has impacts on the inherited properties, local/implicit styles, etc. but shouldn't be an issue assuming the element tree is reasonable (sorry for the subjective term but there is no concrete number). If for example you saw some performance issues when switching tabs in a tabgroup but not if the controls were in an ms tabcontrol then perhaps the dockmanager is doing something there. One thing that might be worth testing is to try (in code) to pull the grid out of the contentpane, create a wpf window, set that control as the content and then show that window. In essence that is what the xamDockManager is doing when you drag a pane to a floating position. Is the delay there any different than when you used the xamDockManager?
Andrew, usually such issues cannot be duplicated in a sample application. If xamDockManager is doing nothing to explain delays, then I will continue this discussion on the xamDataGrid forum.
The xamDockManager itself isn't doing anything directly that would explain long delays. It will of course have to remove the contentpane from the visual and logical tree. That will result in WPF affecting the the descendant elements affecting inherited properties, possibly changing styles/templates because the local/implicit style has changed, etc. The measure/arrange of those elements may change which of course means they will need to be remeasured/arranged. If you can post a project that exhibits the delays I can try to see what is happening and if there is anything that can be done to mitigate this in the dockmanager or grid. What is the element tree count of these datapresenters? You can use Snoop to check that. Do you have recordcontainergenerationmode set to something other than recycle? Is the Theme property set? Are there other local/implicit styles in effect here (e.g. do you have resourcedictionaries in the grid, window or application resources that affect elements within the datapresenter)? Are there any 1st chance exceptions occuring during the process? I.e. set Debug->Exceptions to break on all exceptions. Are you using AutoFit?
I have observed similar performance issues here as most of my views contain a xamDataGrid. Hopefully this will be resolved soon.
I have created a support ticket (CAS-55380-RS8NY4) and will be getting back to you through the case after checking these issues with the team.