예제 #1
0
        private void listTracks_KeyDown(object sender, KeyEventArgs e)
        {
            // Was delete key pressed?
            if (e.KeyCode == Keys.Delete)
            {
                // Is there anything selected?
                if (listTracks.SelectedItems.Count > 0)
                {
                    // Compose message
                    var msgText = "Delete ";
                    msgText += (listTracks.SelectedItems.Count == 1) ? ((TrackInfo)listTracks.SelectedItems[0].Tag).Name : listTracks.SelectedItems.Count + " Tracks";
                    msgText += "?";

                    // Ask user
                    if (MessageBox.Show(this, msgText, @"Confirm Delete", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == DialogResult.OK)
                    {
                        // Fire before change notification
                        BeforeChange?.Invoke(this, null);

                        // Remove items
                        var itemsToRemove = listTracks.SelectedItems.Cast <ListViewItem>().ToList();
                        foreach (var item in itemsToRemove)
                        {
                            listTracks.Items.Remove(item);
                            m_Tracks.Remove(item.Tag as TrackInfo);
                        }

                        // Fire tracks change notification
                        TracksRemoved?.Invoke(this, null);
                    }
                }
                e.Handled = true;
            }
        }
예제 #2
0
 internal void OnTracksRemoved(TracksRemovedEventArgs e)
 {
     TracksRemoved.RaiseEvent(this, e);
 }