private void UpdateSong(SongCollectionEventArgs.ChangeType type, Song changedSong) { SuspendLayout(); System.Windows.Forms.Control[] ctrls; switch (type) { case SongCollectionEventArgs.ChangeType.Add: AddSongControls(changedSong); break; case SongCollectionEventArgs.ChangeType.Clear: foreach (System.Windows.Forms.Control ctrl in panel.Controls) { CleanSongControls(ctrl); } panel.Controls.Clear(); LoadSongs(); break; case SongCollectionEventArgs.ChangeType.Remove: ctrls = new System.Windows.Forms.Control[panel.Controls.Count]; panel.Controls.CopyTo(ctrls, 0); List <System.Windows.Forms.Control> controllist = new List <System.Windows.Forms.Control>(ctrls); CleanSongControls(controllist.Find((System.Windows.Forms.Control control) => { SongControl songControl = control as SongControl; return(songControl.Song == changedSong); })); break; } ResumeLayout(); }
private void AddSongControls(Song song) { var sc = new SongControl(); sc.LoadSong(song); panel.Controls.Add(sc); sc.SongDoubleClicked += Sc_SongDoubleClicked; }