I had a similar problem and partially worked it out using the other answers here. Firstly, my particular problem was that
combobox1.SelectedItem = myItem;
did not work as expected. The main reason was that myItem was an object from the group, which was actually the same list as the elements in the combobox, but in fact it was a copy of these elements. Thus, myItem was identical to the actual entry, but was itself an invalid object from the combobox1 container.
The solution was to use SelectedIndex instead of SelectedItem, for example:
combobox1.SelectedIndex = get_combobox_index(myItem);
Where
private int get_combobox_index(ItemClass myItem) { int i = 0; var lst = combobox1.Items.Cast<ItemClass >(); foreach (var s in lst) { if (s.Id == myItem.Id) return i; i++; } return 0; }
source share