Я бы рекомендовал вводить ваши свойства, которые вы предоставляете в виде IList или IEnumerable (универсальный или нет, по вашему выбору), а не ObservableCollection, поскольку это связывает вас с этой реализацией, и в ряде ситуаций это становится раздражающим.
Конкретный интерфейс, который вам нужен для реализации ваших коллекций, - INotifyCollectionChanged.