WPF - Setting ComboBox.SelectedItem in XAML based on matching object
- by Andy T
Hi,
so, I have templated combobox that is basically acting as a simple colour palette. It is populated with a list of SolidColorBrush objects. Fine.
Now, I have some data that holds the hex value of the current colour. I have a converter that converts the hex into a SolidColorBrush. Also fine.
Now, I want to set the SelectedItem property of the combobox based on the colour from my datasource. Since my combo is populated with objects of type SolidColourBrush, and my binding converter is returning a SolidColorBrush, I assumed it would be as simple as saying:
SelectedItem="{Binding Color, Converter={StaticResource StringToBrush}}"
However... it doesn't work :(
I've tested that the binding is working behind the scenes by using the exact same value for the Background property of the combobox. It works fine.
So, clearly I can't just say SelectedItem = [something] where that [something] is basically an object equal to the item I want to be selected.
What is the right way to do this? Surely it's possible in a XAML-only styley using binding, and I don't have to do some nasty C# iterating through all items in the combobox trying to find a match (that seems awfully old-school)...?
Any help appreciated. Many thanks!
AT