This has been a nightmare for a long time for me. I setup the bindings on WPF comboboxes but they never get set to correct items and always are blank on startup. Once I select something, they keep the selection for the rest of the session.
This happens because the WPF system is unable to determine that the set value is same instance as the object in the list. This is specific to complex data types.
The data type needs to implement IEquatable<T> interface.