I have an observable collection...SelectableDataContext<T>
..And in the generic class SelectableDataContext<T>
is...having two private member variables
- Private T item.
- Private bool isSelected.
When the IsSelected property changes...My collection's changed property is not firing .
I think it should fire...because it's Reset
in INotifyCollectionChangedAction
.
This is an old question but for the benefit of anyone who may come across this through a search as I did:
NotifyCollectionChangedAction.Reset
means "The content of the collection changed dramatically". One case where the Reset event is raised is when you callClear()
on the underlying observable collection.With the Reset event, you don't get the
NewItems
andOldItems
collections in theNotifyCollectionChangedEventArgs
parameter.This means you're better off using the "sender" of the event to get a reference to the modified collection and use that directly, i.e. assume it's a new list.
An example of this might be something like:
Lots of discussions on this Reset event here: When Clearing an ObservableCollection, There are No Items in e.OldItems.
Collection changed will be fired if and only if you modify the collection that is via either Adding a new Item or Removing an existing item from the collection.
There is a difference between
INotifyCollectionChanged
andINotifyPropertyChanged
.When a value of a propery in an object changes, it should notify others using
INotifyPropertyChanged
interface implementation.On the other hand, when
number of items
oritems themselves
change in a collection, it should let others know usingINotifyCollectionChanged
implementation.Now, in your case, value of a property of an object in your collection changes. That is supposed to raise
PropertyChanged
event, notCollectionChanged
event.