tetranz:
I have a bare bones example (no db needed) to illustrate the problem if that would be useful. I had weirder things happening with my Janus grid so I thought I better try the DataGridView. Hopefully solving this problem will solve the Janus problems because that works nicely too with a traditional property / field.
Ross, Please share the bare bones example, that should help find the problem. Others have reported similar things, but I don't have a simple, direct repro of the issue.
tetranz:
Am I correct to assume that the advantage of using a managed field for the list property is that it then takes care of IsDirty and IsValid without me needing to override those?
Yes, exactly. And all the parent-child event hookups for event cascading, and resetting the Parent reference on deserialization. All the hard-to-remember things you had to do to make parent-child really work are now automatic.
tetranz:
I notice that the objects in ProjectTracker don't override GetIdValue(). Is that because it's using reference equality now so the id value is not used?
That's right. Thanks to WPF rewriting the rules of equality (or at least severly restricting them), GetIdValue() is now totally optional - left in only for backward compat actually, but not really used in any meaningful way anymore.
Rocky