private void LaunchUserWindows(object sender, RoutedEventArgs e) { for (int i = 0; i < dataGridUsers.SelectedItems.Count; i++) { if (i < UserHandler.l_Users.Count) { cAntUsers tempUser = (cAntUsers)dataGridUsers.SelectedItems[i]; UserWindow childWin = new UserWindow(); tempUser.userUpdateHandler += childWin.updateEvent; // this should go away. Everything that happens below should probably go to // the tempUser update, and the above event should pass whatever is required. WorkoutHandler.workoutEventHandler += childWin.updateWorkoutEvent; // The below should handle most of the above. WorkoutHandler.workoutEventHandler += tempUser.updateWorkoutEvent; userWindows.Add(childWin); childWin.setTitle(tempUser.firstName + " " + tempUser.lastName, (int)(tempUser.ftp * 2)); childWin.Activate(); childWin.Closed += new EventHandler(UserWnd_Closed); childWin.Show(); } } }
void UserWnd_Closed(object sender, EventArgs e) { UserWindow lw = (UserWindow)sender; for (int i = userWindows.Count - 1; i >= 0; i--) { if (lw == userWindows[i]) { // find and get rid of event Handlers // !!! need to do this. userWindows.RemoveAt(i); break; } } }