I have an ItemsControl with DataTemplates that contain ListBoxes with ItemsSource all bound to different ObservableCollections of the same type, each ListBox's SelectedItem is bound to the same property that raises PropertyChanged so that other visual elements of my UserControl will update with the SelectedItem's details.
Everything works great except for the case where a ListBox has only one item. When I click that single item the first time, PropertyChanged is raised as you'd expect. If I click an item in another ListBox everything still works great. However when clicking a lone item in a ListBox that has already been selected once -- it doesn't tell SelectedItem that we've actually selected a new item since as far as the ListBox is concerned it's the same item.
I'm looking for a clean way of handling this situation. Any ideas?