public void Create_ItemBinding() { var backend = new ObservableCollection <string>(); var binding = new ReadOnlyObservableCollection <string>(backend).ToBinding().ItemAt(1); using (var monitoredBinding = binding.Monitor <INotifyPropertyChanged>()) { backend.Add("Test"); monitoredBinding.Should().NotRaise(nameof(INotifyPropertyChanged.PropertyChanged)); binding.Value.Should().BeNull(); } using (var monitoredBinding = binding.Monitor <INotifyPropertyChanged>()) { backend.Add("Test2"); monitoredBinding.Should().RaisePropertyChange(binding, nameof(IReadOnlyObservableValue.Value)); binding.Value.Should().Be("Test2"); } using (var monitoredBinding = binding.Monitor <INotifyPropertyChanged>()) { backend.Insert(0, "TestFirst"); monitoredBinding.Should().RaisePropertyChange(binding, nameof(IReadOnlyObservableValue.Value)); binding.Value.Should().Be("Test"); } }