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.