private void Worker_FilterImages(object sender, DoWorkEventArgs e)
        {
            if (!(sender is BackgroundWorker filteringWorker))
            {
                return;
            }

            PlayerImageFolders filter = (PlayerImageFolders)e.Argument;

            Application.Current.Dispatcher.Invoke(delegate
            {
                FilteredImages.Clear();
            });

            for (var i = 0; i < _allImages.Count; i++)
            {
                var selectableImage = _allImages[i];
                if (selectableImage.Path.Contains(filter.ToString()))
                {
                    Application.Current.Dispatcher.Invoke(delegate
                    {
                        FilteredImages.Add(selectableImage);
                    });
                }

                int percentProgress = (int)Math.Ceiling(((float)i / _allImages.Count) * 100);
                filteringWorker.ReportProgress(percentProgress);
            }
        }
        public void FilterImages(PlayerImageFolders filter)
        {
            BackgroundWorker filteringWorker = new BackgroundWorker {
                WorkerReportsProgress = true
            };

            filteringWorker.DoWork          += Worker_FilterImages;
            filteringWorker.ProgressChanged += Worker_ProgressChanged;
            filteringWorker.RunWorkerAsync(filter);
        }