Вы можете присоединиться к событию CollectionChanged
на ObservableCollection
, чтобы выяснить это.
private void MyCollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
{
if(e.Action == NotifyCollectionChangedAction.Add)
{
//use e.NewItems for added items
}
else if(e.Action == otifyCollectionChangedAction.Remove)
{
//use e.OldItems for removed items
}
...
}
Что касается того, чтобы узнать, какие из них были отредактированы, это влияет не на саму коллекцию, а насущности в коллекции.Хорошая идея - иметь ViewModel
/ Model
, представляющий каждую строку, и реализовать свойство INotifyPropertyChanged
или иметь свойство IsDirty
, с которым вы можете проверить.
Поэтому, когда элемент добавляется, присоединяется к какому-либо событиюэто предупредит вас о любых изменениях.(вы можете сделать это внутри вышеуказанного обработчика CollectionChanged
или другого метода, который создает модель для вас).
model.PropertyChanged += ModelChanged;
...
private void ModelChanged(object sender, PropertyChangedEventArgs e)
{
Model model = (Model)sender;
//Record in your own way that model has changed.
}