This is breaking encapsulation; FileViewModel shouldn't have a diff object which stores data about the ImageViewModels data. Create corresponding observables on the ImageViewModel instead and use those. Same thing for the LineByLineDiffViewModel