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