예제 #1
0
        private void ElementOrderViewModel_SelectedItemsChanged(object sender, NotifyCollectionChangedEventArgs e)
        {
            if (!_selectionChanging)
            {
                _selectionChanging = true;
                //Console.Out.WriteLine($"Element View Model changed {e.Action}");

                if (e.Action == NotifyCollectionChangedAction.Reset)
                {
                    DrawingPanelViewModel.DeselectAll();
                }

                if (e.Action == NotifyCollectionChangedAction.Remove)
                {
                    var lvm = e.OldItems.Cast <ElementModelViewModel>().SelectMany(x => x.GetLeafEnumerator());
                    DrawingPanelViewModel.Deselect(lvm);
                }

                if (e.Action == NotifyCollectionChangedAction.Add)
                {
                    var models = e.NewItems.Cast <ElementModelViewModel>().SelectMany(x => x.GetLeafEnumerator());
                    DrawingPanelViewModel.Select(models);
                }

                _selectionChanging = false;
            }
        }
예제 #2
0
        /// <summary>
        /// Method to invoke when the Delete command is executed.
        /// </summary>
        private void Delete()
        {
            //PropModelServices.Instance().RemoveElementModels(ElementTreeViewModel.SelectedItems.Select(x => x.ElementModel));
            var itemsToDelete = ElementTreeViewModel.SelectedItems.ToList();

            ElementTreeViewModel.SelectedItems.Clear();
            itemsToDelete.ForEach(x => x.RemoveFromParent());
            DrawingPanelViewModel.DeselectAll();
            DrawingPanelViewModel.RefreshLightViewModels();
            ElementOrderViewModel.RefreshElementLeafViewModels();
        }