void RedoDeleteSelected(List <IndexedItem> selectedItems)
        {
            Trace.WriteLine("redoDeleteSelected:");

            Manipulated = itemsController;
            items.SetSelectionFromIndexedItems(selectedItems);
            Manipulated.RemoveSelected();

            undo.PrepareUndo("Delete",
                             Invocation.Create(selectedItems, UndoDeleteSelected));

            itemsController.UpdateSelection();
            OnEachViewDo(view => view.Invalidate());
        }
        private void deleteToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Trace.WriteLine("deleteSelected:");
            if (Manipulated.SelectedCount <= 0)
            {
                return;
            }

            if (Manipulated == itemsController)
            {
                var currentItems = items.CurrentItems;
                undo.PrepareUndo("Delete",
                                 Invocation.Create(currentItems, UndoDeleteSelected));

                Manipulated.RemoveSelected();
            }
            else
            {
                FullMeshAction("Delete", () => Manipulated.RemoveSelected());
            }

            OnEachViewDo(view => view.Invalidate());
        }