ОК, так что мы закончили свою собственную коллекцию и просмотр.
Наша коллекция основана на ObservableCollection, которая присоединяется к событию PropertyChanged каждого элемента в коллекции. У нас есть событие, которое мы вызываем всякий раз, когда свойство изменяется, таким образом другие классы и / или представления могут перехватить это и обработать его, как они считают нужным.
Затем мы создали наш собственный ICollectionView, основанный на ListCollectionView. Представление отслеживает событие CollectionItemChanged из коллекции и просто вызывает (если элемент в коллекции IEditableObject) IEditableList.EditItem (...) и IEditableList.CommitItem (...)
этот Edit () и затем CommitItem () заставляют представление обновляться без фактического вызова Refresh ()
Это полностью "haxor", но работает до того дня, когда MS сделает что-то для нас, бедных разработчиков, чтобы это исправить.