wpf - PropertyChanged Event of ViewModel in ObservableCollection -
i have observable collection of viewmodel objects. how can subscribe property changed event of each view model in collection created , track ones have been changed, can updated them database.
i believe code below serves example of how solve problem. in example mycollection property viewmodel objects. viewmodel implements inotifypropertychanged interface.
private void addcollectionlistener() { if (mycollection != null) { mycollection.collectionchanged += new system.collections.specialized.notifycollectionchangedeventhandler(mycollection_collectionchanged); } } void mycollection_collectionchanged(object sender, system.collections.specialized.notifycollectionchangedeventargs e) { // remove listeners each item has been removed foreach (object olditem in e.olditems) { viewmodel viewmodel = olditem viewmodel; if (viewmodel != null) { viewmodel.propertychanged -= viewmodel_propertychanged; } } // add listeners each item has been added foreach (object newitem in e.newitems) { viewmodel viewmodel = newitem viewmodel; if (viewmodel != null) { viewmodel.propertychanged += new propertychangedeventhandler(viewmodel_propertychanged); } } } void viewmodel_propertychanged(object sender, propertychangedeventargs e) { // todo: property changed logic switch (e.propertyname) { case "mypropertyname": // todo: perform logic necessary when mypropertyname changes break; default: // todo: perform logic other property changes. break; } }
Comments
Post a Comment