Replace the standard dragging tool with one that overrides ComputeEffectiveSelection that adds all the other nodes that have that same property as those that were already selected. Something like:
[code] [Serializable] public class CustomDraggingTool : GoToolDragging { public CustomDraggingTool(GoView view) : base(view) {}
public override GoSelection ComputeEffectiveSelection(IGoCollection sel, bool move) { GoSelection result = base.ComputeEffectiveSelection(sel, move); if (move) { foreach (GoObject obj in this.View.Document) { GoNode n = obj as GoNode; if (n == null) continue; foreach (GoObject s in result) { GoNode sn = s as GoNode; if (sn == null) continue; if (sn.UserObject == n.UserObject) { result.Add(sn); break; } } } } return result; } }[/code]
Install by:
[code] goView1.ReplaceMouseTool(typeof(GoToolDragging), new CustomDraggingTool(goView1));[/code]
Caution: I just typed this in, and it's inefficient and probably incomplete -- I have no idea if this works the way you want.