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

Popular posts from this blog

javascript - Enclosure Memory Copies -

php - Replacing tags in braces, even nested tags, with regex -