Exemplo n.º 1
0
        private void ExecuteDrop(object parameter)
        {
            DropParameters dropParameters = (DropParameters)parameter;
            TreeViewExItem tvei           = dropParameters.DropToItem;
            IDataObject    dataObject     = dropParameters.Data as IDataObject;
            int            index          = dropParameters.Index;
            Node           node           = (tvei == null)?null:tvei.DataContext as Node;

            if (dataObject.GetDataPresent("NewNode"))
            {
                AddNode(node, index, new Node()
                {
                    Name = "New node"
                });
            }

            if (dataObject.GetDataPresent("Nodes"))
            {
                var nodeList = dataObject.GetData("Nodes") as IEnumerable <Node>;
                foreach (var item in nodeList)
                {
                    Node oldNode = item as Node;
                    Node newNode = new Node();
                    newNode.Name = string.Format("Copy of {0}", oldNode.Name.Replace(" (Drag Allowed)", string.Empty));
                    AddNode(node, index, newNode);
                }
            }

            return;
        }
Exemplo n.º 2
0
        private bool CanExecuteDrop(object parameter)
        {
            DropParameters dropParameters = (DropParameters)parameter;
            TreeViewExItem tvei           = dropParameters.DropToItem;
            IDataObject    dataObject     = dropParameters.Data as IDataObject;

            if (!dataObject.GetDataPresent("NewNode") && !dataObject.GetDataPresent("Nodes"))
            {
                return(false);
            }

            int  index = dropParameters.Index;
            Node node  = (tvei == null)?null:tvei.DataContext as Node;

            if (tvei == null)
            {
                return(true);              //drop to root
            }
            if (index == -1)
            {
                return(node.AllowDrop);
            }
            else
            {
                return(node.AllowInsert);
            }
        }
Exemplo n.º 3
0
        private void ExecuteDrop(object parameter)
        {
            DropParameters dropParameters = (DropParameters)parameter;
            TreeViewExItem tvei           = dropParameters.DropToItem;
            IDataObject    dataObject     = dropParameters.DropData as IDataObject;
            int            index          = dropParameters.Index;
            Node           node           = (tvei == null)?null:tvei.DataContext as Node;

            foreach (string f in dataObject.GetFormats())
            {
                object      obj     = dataObject.GetData(f);
                DragContent content = obj as DragContent;
                if (content != null)
                {
                    foreach (var item in content.Items.Reverse())
                    {
                        Node oldNode = (Node)item;
                        Node newNode = new Node();
                        newNode.Name = string.Format("Copy of {0}", oldNode.Name.Replace(" (Drag Allowed)", string.Empty));
                        AddNode(node, index, newNode);
                    }
                }
                else
                {
                    AddNode(node, index, new Node()
                    {
                        Name = "New node"
                    });
                }
            }
            return;
        }
Exemplo n.º 4
0
 private void OnDrop(DropParameters arg)
 {
     LogData(arg.Event.DropData, nameof(OnDrop));
     Debug.WriteLine("Data is null? " + (arg.Event.DataObject == null));
     System.Runtime.InteropServices.ComTypes.IDataObject dataObject = arg.Event.DataObject;
     if (dataObject != null)
     {
         ExtractData(nameof(OnDrop), new DataObject(dataObject));
     }
 }