Usually, I add method SetBar to may application that calls Set with proper callback and then call SetBar each time ToolBar needs refreshing.
There is quite smart update logic in SetBar so that things get repainted only if needed even if "SetBar" looks like rebuilding the toolbar from the scratch (in other words, calling SetBar is relatively cheap).