It seems that ComputeEffectiveCollection Method is called before a drag operation starts and I can not find a way of updating parts collection during the drag operation. I want to conditionally add (if X of node being dragged = X of From or To node ) to the collection during drag operation. It is basically to check if link is straight then keep it straight.
Well, I suppose you could modify either DraggingTool.CopiedParts if copying or DraggingTool.DraggedParts if not copying.
The result of calling ComputeEffectiveCollection is saved as DraggedParts.