private void UpdateArtist(ArtistCollectionEventArgs.ChangeType type, Artist changedArtist) { SuspendLayout(); switch (type) { case ArtistCollectionEventArgs.ChangeType.Add: AddArtistControl(changedArtist); break; case ArtistCollectionEventArgs.ChangeType.Clear: foreach (System.Windows.Forms.Control ctrl in panel.Controls) { CleanArtistControls(ctrl); } panel.Controls.Clear(); LoadArtists(); break; case ArtistCollectionEventArgs.ChangeType.Remove: System.Windows.Forms.Control[] 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); CleanArtistControls(controllist.Find((System.Windows.Forms.Control control) => { ArtistControl artistControl = control as ArtistControl; return(artistControl.Artist == changedArtist); })); break; } ResumeLayout(); }
private void AddArtistControl(Artist artist) { var ac = new ArtistControl(); ac.LoadArtist(artist); panel.Controls.Add(ac); ac.DoubleClick += Ac_DoubleClick; }
private void Ac_DoubleClick(object sender, EventArgs e) { ArtistControl ac = (ArtistControl)sender; ArtistControlClicked?.Invoke(this, new ArtistControlEventArgs() { Artist = ac.Artist }); }