As long as "Support INotifyPropertyChanged" is checked when you generate, then the DataGridView should immediately reflect a change in the bound collection. We have a TestForms app to manually test this.
It works the old way, with casting:
Employees entity = (Employees)collection[0];
entity.LastName = "Notified";
The new way, without having to cast:
collection[0].LastName = "Notified";
With FindByPrimaryKey():
Employees entity = collection.FindByPrimaryKey(1);
entity.LastName = "Notified";
And, with Detach, change, Attach:
Employees entity = collection.DetachEntity(collection[0]);
entity.LastName = "Notified";
collection.AttachEntity(entity);
In all cases, both with, and without, using a BindingSource between the DGV and the collection, the field is updated immediately.
Is the caching mechanism somehow intercepting the change notification, and not passing it on? Does the collection have any virtual columns or extended properties that do not implement INotifyPropertyChanged? Have you tried a BindingSource.ResetBindings(false) and/or a DataGridView.Refresh() after the cache finishes updating?
David Neal Parsons
www.entityspaces.net