Ah, that’s right: because the data-binding doesn’t recognize changes to the contents of the collection.
OK, what you suggested sounds good: define a Diagram.SelectionChanged event handler that does what you want. That’s basically the same as defining a CollectionChanged event handler on the collection.