コード例 #1
0
        public async Task <bool> Remove(TValue datasourceItemToDelete)
        {
            if (datasourceItemToDelete == null)
            {
                return(false);
            }

            var eventItemsToRemove = new List <TValue>();
            //Find all the tree items that need to be removed
            var treeItemToRemove = FindTreeItem(datasourceItemToDelete);
            //This list includes the item to delete as well.
            var treeItemsToRemove = FindAllTreeItemChildren(treeItemToRemove);

            //Remove the child items from the datasource and treeItems
            foreach (var treeitem in treeItemsToRemove)
            {
                //Remove the child from the parent treeitem.
                DelinkTreeItemFromParent(treeitem);
                _treeItems.Remove(treeitem);

                //Remove the item from Original Datasource
                var childItemToRemove = FindObjectFromDatasource(treeitem);
                eventItemsToRemove.Add(childItemToRemove);
                Datasource.Remove(childItemToRemove);
            }

            await OnItemsRemoved.InvokeAsync(eventItemsToRemove);

            await NotifyDatasourceChanged();

            Console.WriteLine($"Successfully removed {treeItemToRemove.Label}");
            return(true);
        }
コード例 #2
0
        private void Window_KeyDown(object sender, KeyEventArgs e)
        {
            switch (e.Key)
            {
            case Key.Space:
            case Key.Play:
            case Key.Pause:
            case Key.MediaPlayPause:
            {
                if (lvwFiles.SelectedItems.Count == 0)
                {
                    return;
                }

                OnTogglePaused?.Invoke(lvwFiles.SelectedItems.Cast <Models.PlaylistItem>());
                return;
            }

            case Key.OemPlus:
            case Key.Add:
            {
                if (lvwFiles.SelectedItems.Count == 0)
                {
                    return;
                }

                OnItemsVolumeChanged?.Invoke(lvwFiles.SelectedItems.Cast <Models.PlaylistItem>(), +1);
                return;
            }

            case Key.OemMinus:
            case Key.Subtract:
            {
                if (lvwFiles.SelectedItems.Count == 0)
                {
                    return;
                }

                OnItemsVolumeChanged?.Invoke(lvwFiles.SelectedItems.Cast <Models.PlaylistItem>(), -1);
                return;
            }

            case Key.Delete:
            {
                if (lvwFiles.SelectedItems.Count == 0)
                {
                    return;
                }

                OnItemsRemoved?.Invoke(lvwFiles.SelectedItems.Cast <Models.PlaylistItem>());
                return;
            }
            }
        }