Hi Liam,
This behavior is expected, an observable collection only notifies when a new item is added or removed, and even when implementing INotifyPropertyChanged, our datagrid recalculates its grouping whenever a items are added/removed.
There are many possible workarounds that you might want to implement, one of them is for example to let the underlying business object class to have a reference to its parent list, and whenever an item property changes within the object, it would do a reset on the parent list at the index of the changing item.
Something like this:
MyBusinessObject
{
ObservableCollection<MyBusinessObject> parentListReference;
public string myProperty
{
get { return _prop; }
set
{
if (_prop!= value)
{
_prop = value;
OnPropertyChanged("myProperty");
parentListReference.RemoveAt( parent.Items.IndexOf( this ) );
parentListReference.Add( this );
}
}
}
}
}
If you need more help your specific case, we would need a sample project that demonstrates your problem so that we investigate this in more detail.
You can send it to support@xceed.com, please include a reference to this forum post in your email.
Best Regards,
Michel Dahdah
Technical Support
Xceed Software inc.