Cómo crear una colección observable personalizada usando ConcurrentDictionary, INotifyCollectionChanged, INotifyPropertyChanged