public void UpdateSelectedSongTitle() { SongList.SelectedIndexChanged -= SongList_SelectedIndexChanged; SongList.BeginUpdate(); List <int> selected = SongList.SelectedIndices.Cast <int>().ToList(); List <SongEntry> songs = SelectedSongs.ToList(); if (selected.Count != songs.Count) { return; } SongList.ClearSelected(); for (int i = 0; i < songs.Count; ++i) { SongList.Items[selected[i]] = songs[i]; } foreach (int i in selected) { SongList.SetSelected(i, true); } SongList.EndUpdate(); SongList.SelectedIndexChanged += SongList_SelectedIndexChanged; }
private void AddButton_Click(object sender, EventArgs e) { List <SongEntry> selected = (from SongEntry s in SongList.SelectedItems select s).ToList(); List <string> path = PathToSelectedGroup(); TreeNode group = GroupList.SelectedNode; if (group.ForeColor != Color.RoyalBlue) { group = group.Parent; } GroupList.BeginUpdate(); SongList.BeginUpdate(); foreach (var s in selected) { Metadata.AddSongToGroup(path, s.UniqueId); AddTreeViewSong(group, s); SongList.Items.Remove(s); } GroupList.EndUpdate(); SongList.EndUpdate(); MadeChanges = true; }
public void RefreshSongList() { SongList.BeginUpdate(); var selectedIds = (from s in SelectedSongs select s.UniqueId).ToList(); SongList.Items.Clear(); if (c.Metadata != null) { foreach (SongEntry s in c.Metadata.Songs) { SongList.Items.Add(s); if (selectedIds.Contains(s.UniqueId)) { SongList.SetSelected(SongList.Items.Count - 1, true); } } } SongList.EndUpdate(); }