I have a really strange problem. In my statusbar, I have a Ribbon PopupButton. Its label is bound to the Count property of a static ObservableCollection I have on a class. In between, I have a converter, which simply converts the count to something that makes sense for the user, e.g. 0 to "No active items", 1 to "1 item" and so on. Now the strange thing is that at first, there is 0 items, so the text is set to something like "No active items". Once the app loads and items are added to the list, the text changes to something like "2 items" but the length of the button remains as if it was still the long text! This means that the button is now many pixels too long, leaving a lot of space between the text and the arrow. If I do it the other way around, and start off with a short text and then make it longer (all through the converter of course), it also fails - the button will then be too short to display the new text.
Now, if I add items to the list AFTER the application is done loading, the change is reflected in the width of the button, but that doesn't really help me in this situation :)
I have tried re-creating this in a quick sample app, but so far without any luck. Do you have ANY ideas what could be causing this and perhaps help me figure out what's going on? Even a workaround would do :). I have even tried calling all the Invalidate*() methods on the button, but it makes no difference.