Currently I am using an ObservableCollection within a WPF application, the application is an implementation of Conway\'s Game of life and works well for about 500 cells but
You have to implement INotifyCollectionChanged too, and then it should all work OK. There's another relevant SO answer which uses freezables to ensure that changes in underlying entities are also handled.