private void ModelSynchro(object sender, NotifyCollectionChangedEventArgs e) //wywołuje akcję, wchodzimy przez CopyPersons() { switch (e.Action) { //nazwy metod jak w modelu: DelPerson i NewPerson //NotifyCollectionChangedAction opisuje akcje które spowodowały CollectionChanged event case NotifyCollectionChangedAction.Add: //Opisuje akcję która powoduje System.Collections.Specialized.INotifyCollectionChanged.CollectionChanged AdresViewModel newTask = (AdresViewModel)e.NewItems[0]; //NewItems otrzymuje listę nowych rzeczy powodujących zmianę. if (newTask != null) //jeśli wciąż są nowe itmey... { model.DodajAdres(newTask.GetModel()); //w kolekcji jest tworzone nowe wywołanie modelu } break; case NotifyCollectionChangedAction.Remove: //j.w. tylko dla usuwania AdresViewModel removeTask = (AdresViewModel)e.OldItems[0]; if (removeTask != null) { model.UsunAdres(removeTask.GetModel()); } break; } }
private void Odpalamy(AdresViewModel adres) // EventHandler { adres.InformacjaCheck += JeszczeRaz; }