This blog post shows the workaround I came up with.
Suppose you have a collection of Person View Model instances, where the class is defined as: Also suppose that you have these resources set up, and they are applied to the List Box that displays the list of Person View Model objects: The List Box is declared as: The UI also has another List Box that is not bound to a grouped collection view, and also, beneath the List Boxs, a Text Block that shows the selected Person View Model’s Bio property. Because it turns out that the initially selected item in a List Box bound to a grouped ICollection View has its Is Selected property set to true, as a local value.
Here, in item source, we give the collection name and in selected item, we give single person property.
We have to define the display member here and you have to give whatever we have to display in combo box dropdown list.
For that reason, I have added a button next to the Text Box, which will update the source value on demand.
In the Code-behind, you will find the Click handler, where we use a couple of lines of code to get the binding from the destination control and then call the Update Source() method on it.
As of writing, all properties except for the Text property, is updated as soon as the property changes (Property Changed), while the Text property is updated when focus on the destination element is lost (Lost Focus).
Default is, obviously, the default value of the Update Source Trigger.
XAML Code Our model as person class is ready with its property. We have to create the collection of the person class because we have to give the collection to the combo box as an item source, so we create the property in view-mode, where one is Observable Collection of the person class and second is person class.
Since we want single class property, we have to select any item from the combo box collection.