If we have a combobox bound 'twoway' to a TimeSpan property on a view model, and a converter changing the timespan view model property to a string, adding a 'm' for minutes, then when editing the combobox value from say 10m to 5, I would expect:
WPF Binding calls ConvertBack to get value to update source property - let's assume that is a timespan for 5 minutes.
The view model's timespan property setter is called and sets the underlying field (changing from timespan of 10 to 5) and then raises OnPropertyChanged
WPF Binding receives event and therefore calls its handler method, which first does a Convert for the value, and then sets this '5m' converted value to the target text property
Except, the last step does not happen, and the comboxbox remains at 5. I actually want this behaviour, but would like to understand why the last step does not happen. Strange thing is changing to a textbox does give the behaviour I expect (updating 5 to 5m immediately)
EDIT: original question mistakenly stated textbox where I should have written combobox
UPDATE: using the snoop utility, I see that the text property of combobox does become 5m, but display remains 5 - I can only assume if the combobox is being edited, it does not refresh its text display. Changed title of question from "WPF Data Binding Target-Source-Target cycle using converter" to more accurately reflect what it now is.