private void DragSource_DragEnter(object sender, Infragistics.DragDrop.DragDropCancelEventArgs e) { //set drag data var xdt = e.DragSource as CardPanel; var cpr = xdt.TryFindParent <DataRecordPresenter>(); var ep = cpr.DataRecord.DataItem as NeighborhoodWatch; if (ep == null) { e.Cancel = true; } else { e.Data = ep; } //change allow or not e.OperationType = OperationType.DropNotAllowed; if (e.DropTarget is XamDataTreeNodeControl) { XamDataTreeNodeControl drca = e.DropTarget as XamDataTreeNodeControl; var dtnode = drca.Node; if (dtnode != null) { DirectoryNode dr = dtnode.Data as DirectoryNode; if (dr.IsFolder) { e.OperationType = OperationType.Move; } } } }
private void xamDataTreeAccount_NodeDragEnd(object sender, Infragistics.DragDrop.DragDropEventArgs e) { if (e.OperationType != null && e.OperationType == OperationType.Copy) { XamDataTreeNode origNode = e.Data as XamDataTreeNode; if (origNode == null) { return; } PortfolioVM porfVm = origNode.Data as PortfolioVM; if (porfVm == null) { return; } XamDataTreeNodeControl treeNodeCtrl = e.DropTarget as XamDataTreeNodeControl; if (treeNodeCtrl == null) { return; } AccountVM acctVm = treeNodeCtrl.Node.Data as AccountVM; if (acctVm == null) { return; } XElement portfElem = porfVm.Persist(); var cloned = PortfolioVM.Load(acctVm, portfElem); acctVm.AddPorfolio(cloned); ViewModel.Persist(); } }
private void DragSource_DragOver(object sender, Infragistics.DragDrop.DragDropMoveEventArgs e) { if (e.DropTarget is XamDataTreeNodeControl) { XamDataTreeNodeControl drca = e.DropTarget as XamDataTreeNodeControl; var dtnode = drca.Node; if (dtnode == null) { e.OperationType = OperationType.DropNotAllowed; } } }