Our application starts up with several docked RadPanes, each of which presents the FrameWorkElement from a WPF UserControl. In those UserControl FrameWorkElements which make extensive use of data binding, sometimes in support of MVVM pattern, we note significant CPU usage and an unresponsive UI during the transition between RadPane (docked) to ToolWindow (floating). It appears that the greater the amount of data binding, the longer the UI is unresponsive.
What I think is happening: when a RadPane transitions between the RadSplitContainer and ToolWindow there is a change in the DataContext for that RadPane such that all the UI elements are notified and the Main Thread gets buried running Event Handlers supporting the data bindings.
Does that sound plausible?
If so, during the transition from Dock to Float, I would like to instrument our code at the points where the containers are instantiated to further my understanding of what is happening. Is there an Event to which I can subscribe when a RadPane is docked or floated?
On floating, would it be possible to, for example, defer the rendering of the FrameWorkElement until maybe a MouseUp or DraggingComplete event occurs?
Is there a way to transfer the same UserControl FrameWorkElement object between the RadPane and ToolWindow to avoid the data binding?
Thanks in advance for your input. This is a bit of a show stopper issue at the moment!
What I think is happening: when a RadPane transitions between the RadSplitContainer and ToolWindow there is a change in the DataContext for that RadPane such that all the UI elements are notified and the Main Thread gets buried running Event Handlers supporting the data bindings.
Does that sound plausible?
If so, during the transition from Dock to Float, I would like to instrument our code at the points where the containers are instantiated to further my understanding of what is happening. Is there an Event to which I can subscribe when a RadPane is docked or floated?
On floating, would it be possible to, for example, defer the rendering of the FrameWorkElement until maybe a MouseUp or DraggingComplete event occurs?
Is there a way to transfer the same UserControl FrameWorkElement object between the RadPane and ToolWindow to avoid the data binding?
Thanks in advance for your input. This is a bit of a show stopper issue at the moment!