Beispiel #1
0
        void treeViewEx_OnSelecting(object sender, System.Windows.Controls.SelectionChangedCancelEventArgs e)
        {
            TreeViewEx        treeViewEx = (TreeViewEx)sender;
            CommandController controller = viewModel.Controller;

            e.Cancel = true;

            List <CommandBase> cmdList = new List <CommandBase>();

            foreach (object itemToUnselect in e.ItemsToUnSelect)
            {
                //if (!treeViewEx.SelectedItems.Contains(itemToUnselect)) continue;
                cmdList.Add(new DeselectItemCmd(viewModel, (Node)itemToUnselect));
            }
            foreach (object itemToSelect in e.ItemsToSelect)
            {
                //if (treeViewEx.SelectedItems.Contains(itemToSelect)) continue;
                cmdList.Add(new SelectItemCmd(viewModel, (Node)itemToSelect));

                //TreeViewExItem tvei = leftTree.GetTreeViewItemFor(itemToSelect);
                //if (tvei != null) tvei.BringIntoView(new Rect(1, 1, 1, 1));
            }
            if (cmdList.Count > 0)
            {
                controller.AddAndExecute(new CommandGroupCmd(viewModel, cmdList.ToArray()));
            }

            lblUndoStack.Content = controller.UndoCount;
            lblRedoStack.Content = controller.RedoCount;

            return;
        }
Beispiel #2
0
        internal bool CheckSelectionAllowed(IEnumerable <object> itemsToSelect, IEnumerable <object> itemsToUnselect)
        {
            if (OnSelecting != null)
            {
                var e = new SelectionChangedCancelEventArgs(itemsToSelect, itemsToUnselect);
                foreach (var method in OnSelecting.GetInvocationList())
                {
                    method.Method.Invoke(method.Target, new object[] { this, e });
                    // stop iteration if one subscriber wants to cancel
                    if (e.Cancel)
                    {
                        return(false);
                    }
                }

                return(true);
            }

            return(true);
        }
        /// <summary>
        /// TreeViewEx의 OnSelecting 이벤트와 연결
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public virtual void OnNodeSelected(object sender, SelectionChangedCancelEventArgs e)
        {
            e.Cancel = true;

            foreach (object itemToUnselect in e.ItemsToUnSelect)
            {
                if (SelectedNodes.Contains(itemToUnselect as FinderNode))
                    SelectedNodes.Remove(itemToUnselect as FinderNode);
            }

            foreach (object itemToSelect in e.ItemsToSelect)
            {
                if (!SelectedNodes.Contains(itemToSelect as FinderNode))
                    SelectedNodes.Add(itemToSelect as FinderNode);
            }

            if (SelectItemsChanged != null)
                SelectItemsChanged(this, EventArgs.Empty);

            if (PropertyChanged != null)
                PropertyChanged(this, new PropertyChangedEventArgs("SelectedNodes"));
        }
 /// <summary>
 /// 노드들을 선택했을 경우 호출되는 EventToCommand
 /// </summary>
 /// <param name="e"></param>
 public void ExecuteNodesSelectedEventCommand(SelectionChangedCancelEventArgs e)
 {
     e.Cancel = true;
     if (e.ItemsToUnSelect != null)
     {
         foreach (object itemToUnselect in e.ItemsToUnSelect)
         {
             if (SelectedNodes.Contains(itemToUnselect as TreeViewNode))
                 SelectedNodes.Remove(itemToUnselect as TreeViewNode);
         }
     }
     if (e.ItemsToSelect != null)
     {
         foreach (object itemToSelect in e.ItemsToSelect)
         {
             if (!SelectedNodes.Contains(itemToSelect as TreeViewNode))
                 SelectedNodes.Add(itemToSelect as TreeViewNode);
         }
     }
     NotifyPropertyChanged("SelectedNodes");
 }
Beispiel #5
0
        internal bool CheckSelectionAllowed(IEnumerable<object> itemsToSelect, IEnumerable<object> itemsToUnselect)
        {
            if (OnSelecting != null)
            {
                var e = new SelectionChangedCancelEventArgs(itemsToSelect, itemsToUnselect);
                foreach (var method in OnSelecting.GetInvocationList())
                {
                    method.Method.Invoke(method.Target, new object[] { this, e });

                    // stop iteration if one subscriber wants to cancel
                    if (e.Cancel)
                    {
                        return false;
                    }
                }

                return true;
            }

            return true;
        }
 /// <summary>
 /// TreeViewEx의 OnSelecting 이벤트와 연결
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 public override void OnNodeSelected(object sender, SelectionChangedCancelEventArgs e)
 {
     base.OnNodeSelected(sender, e);
     RemoveDirectoryCommand.RaiseCanExecuteChanged();
 }