public void ReadOnlyObservableCollectionCount() { var ints = new ObservableCollection <int>(); var source = new ReadOnlyObservableCollection <int>(ints); var changes = new List <EventPattern <PropertyChangedAndValueEventArgs <int> > >(); using (source.ObservePropertyChangedWithValue(x => x.Count, signalInitial: false) .Subscribe(x => changes.Add(x))) { CollectionAssert.IsEmpty(changes); ints.Add(1); EventPatternAssert.AreEqual(source, "Count", Maybe <int> .Some(1), changes.Single()); ints.Add(2); Assert.AreEqual(2, changes.Count); EventPatternAssert.AreEqual(source, "Count", Maybe <int> .Some(2), changes.Last()); } }