Пример #1
0
        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");
            }
        }