Your Privacy Matters: We use our own and third-party cookies to improve your experience on our website. By continuing to use the website we understand that you accept their use. Cookie Policy
65
Optimal way to batch update tool state in ribbon
posted

Hello,

Our team is currently licensed with the infragistics winforms suite. We are using v9.2, .NET 3.5SP1, and our entire UI is made up of infragistics components.

We have recently been tasked with improving our applications performance, and after a decent amount of profiling and testing, we've found that a large part of the applications time is spent rendering the infragistics controls.

One of the things that is hurting performance the most is the time it takes to refresh the ribbon control which is always visible, and is docked at the top of our root window. Whenever someone performs a business action in the software, the entire ribbon dynamically updates to represent the new application state (buttons become enabled/disabled, visible/invisible, tooltip text updates).

Rather than updating the ribbon inline with our business logic, I was thinking we could add a layer of indirection and publish all changes to some object that represents a changeset. Once filled, we could walk the changeset and update the ribbon in one atomic operation.

What is the best way for us to bulk update the ribbon's tool state without causing a repaint, and afterwards invalidate the ribbon to see the changes?

FWIW, the docking manager and toolbar manager instances seem to be giving us the worst performance.

Thanks!

Parents
No Data
Reply
  • 2197
    posted

    Hello.

    Could you provide some details about how ytour application is updating the ribbon? You mentioned that buttons are enabled or disabled based upon what the user does with the application. How and when are you changing the state of these buttons? You could always call the BeginUpdate() method on the UltraToolbarsManager before making any changes to the state of any of the tools. This will suspend the painting of the control until EndUpdate() is called which will help performance if you are looking to make a large number of changes.

Children
No Data