public void ReadOnlyObservableCollectionCount() { var ints = new ObservableCollection <int>(); var source = new ReadOnlyObservableCollection <int>(ints); var changes = new List <EventPattern <PropertyChangedEventArgs> >(); using (source.ObservePropertyChanged(x => x.Count, signalInitial: false) .Subscribe(x => changes.Add(x))) { CollectionAssert.IsEmpty(changes); ints.Add(1); Assert.AreEqual(1, changes.Count); Assert.AreEqual("Count", changes.Single().EventArgs.PropertyName); Assert.AreSame(source, changes.Single().Sender); ints.Add(2); Assert.AreEqual(2, changes.Count); Assert.AreEqual("Count", changes.Last().EventArgs.PropertyName); Assert.AreSame(source, changes.Last().Sender); } }