I'll cut to the rant, since I assume no one wants the long story. Basically, styles are powerful, people are doing insane things restyling Avalon controls. But one look at the style for ComboBox, and I'm puzzled. It's not that the style is nutty, I've deciphered enough XAML to be comfortable there, it's that it really really feels like styling was not meant to do this.
(Hat tip to KarstenJ for the serialization code, though Sparkle does it best (which I don't have at home...))
The problem is that random controls such as ToggleButton in the above sample are being repurposed solely to expand a popup menu by binding ToggleButton's IsChecked property with Popup's IsOpen. It works for this sample, but is not exactly what I'd call the best solution. Is this the best way to go from an event (mouse click) to setting a property? To use a two-way binding on a control that happens to handle the event you're interested in?