Две «вещи» привязки данных TwoWay и ObservableCollection - это разные вещи, которые могут сотрудничать, но не связаны напрямую. Databinding - это концепция, а ObservableCollection - реализация интерфейса (INotifyCollectionChanged), который используется при реализации концепции привязки данных в .NET framework. Сама по себе INotifyCollectionChanged является небольшой частью этой реализации.
Фактически вы можете использовать привязку данных TwoWay без ObservableCollections и ObservableCollections без привязки данных.
Databinding - это меканизм, позволяющий связать свойство бизнес-объекта (часто свойство ViewModel) с свойством пользовательского интерфейса. OneWay Databinding обеспечивает поддержку обновления пользовательского интерфейса при изменении объекта (что требует реализации INotifyPropertyChanged и/или INotifyCollectionChanged на бизнес-объекте). TwoWay Databinding обеспечивает поддержку twoway, так как ее имя предлагает: Object => UI (например, OneWay do) И UI => Object. Обновления пользовательского интерфейса к объекту не требуют реализации INotifyCollectionChanged или INotifyPropertyChanged.
Наблюдаемая коллекция теперь интересна тем, что она реализует INotifyCollectionChanged, что делает ее хорошим кандидатом для создания коллекций с привязкой к данным. Но я часто использую INotifyCollectionChanged без привязки данных, и я уверен, что вы можете найти другие коллекции, которые реализуют INotifyCollectionChanged (например, PagedCollectionView)
Ответил ли он на ваш вопрос?
- А что такое 'MyCollection' - экземпляр ObservableCollection?Затем он обновит ссылку или содержимое? – TCM
Если вы вызываете OnNotyfyPropertyChanged («MyCollection») при изменении ссылки на вашу коллекцию, тогда WPF будет отслеживать как изменения ссылок, так и содержимое. – levanovd