public void ReadOnlyObservableCollection_ObserveReplaceChangedTest() { var l = new List <OldNewPair <string> >(); var c = new ObservableCollection <string>(new[] { "a", "b", "c" }); var r = new ReadOnlyObservableCollection <string>(c); r.ObserveReplaceChanged() .Subscribe(x => l.Add(x)); l.Count.Is(0); c[0] = "aaa"; l.Count.Is(1); l[0].Is(x => x.OldItem == "a" && x.NewItem == "aaa"); c[2] = "ccc"; l.Count.Is(2); l[1].Is(x => x.OldItem == "c" && x.NewItem == "ccc"); }