Esempio n. 1
0
        private async Task RemoveFilterEntriesAsync(Regex regex, ProgressDialogController controller)
        {
            var removeMessage = "Removing entry...";

            await Task.Run(() =>
            {
                var toRemove = DisplayedSongs
                               .Where(x => !regex.IsMatch(x.Name))
                               .ToList();

                controller.Minimum = 0;
                controller.Maximum = toRemove.Count;

                for (int i = 0; i < toRemove.Count; i++)
                {
                    var currentItemNumber = i + 1;

                    Application.Current.Dispatcher.Invoke(() =>
                    {
                        DisplayedSongs.Remove(toRemove[i]);
                    });

                    controller.SetProgress(currentItemNumber);
                    controller.SetMessage(String.Format("{0} ({1}/{2})", removeMessage, currentItemNumber, toRemove.Count));
                }
            });
        }
Esempio n. 2
0
        // ---------- EventAggregator
        private void RemoveSongFromSongList(int index)
        {
            var toRemove = DisplayedSongs.ElementAt(index);

            DisplayedSongs.Remove(toRemove);
            this.songs.Remove(toRemove);
            this.UpdateSongIndices();

            // Reset view.
            if (!DisplayedSongs.Any())
            {
                DisplayedSongs = null;
            }
        }