As for question, I have an ObservableCollection of objects, declared in a UserControl and binded to an ItemsControl.ItemsSource.
Its properties are updated during the software run, eventually.
I would like to catch the update event.
I tried using the CollectionChanged event, but it isn't fired.
The collection is declared as belove:
public ObservableCollection<BatchSensor> BatchSensors
{
get { return (ObservableCollection<BatchSensor>)GetValue(BatchSensorsProperty); }
set { SetValue(BatchSensorsProperty, value); }
}
public static readonly DependencyProperty BatchSensorsProperty =
DependencyProperty.Register(nameof(BatchSensors), typeof(ObservableCollection<BatchSensor>), typeof(BL_BatchContainer), new UIPropertyMetadata(null));
and initialized as follows
public BL_BatchContainer(string title, ObservableCollection<BatchSensor> batchSensors)
{
InitializeComponent();
Title = title;
BatchSensors = new ObservableCollection<BatchSensor>();
BatchSensors.CollectionChanged += OnListChanged;
BatchSensors = batchSensors;
}
The class BatchSensor implements INotifyPropertyChanged and fires property change notifications.
public class BatchSensor: ClassBase
{
private bool? _error = null;
public bool? Error { get => _error; set => SetAndNotifyIfChanged(ref _error, value); }
}