Существует ли класс коллекции типа IList или IEnumerable, который имеет флаг, который я могу проверить, или событие, которое может быть запущено, если коллекция изменяется путем добавления, удаления или обновления?
Вы ищете ObservableCollection<T>. Он реализует INotifyCollectionChanged, поэтому вы можете реализовать это самостоятельно или использовать / subclass ObservableCollection<T>.
ObservableCollection<T>
INotifyCollectionChanged
Да: ObservableCollection<T>.
На самом деле, он реализует интерфейс INotifyCollectionChanged, который определяет событие CollectionChanged (это означает, что вы можете добавить логику к любому вашему классу, если ObservableCollection<T> не применимо.
CollectionChanged
В .Net 3.0-4.0 есть класс ObservableCollection<T>, который предоставляет событие CollectionChanged, которое будет работать для того, что вы хотите.