public static XGroup Group(string name, IEnumerable<BaseShape> shapes, IList<BaseShape> source = null) { var group = XGroup.Create(name); if (shapes != null) { foreach (var shape in shapes) { if (shape is XPoint) { group.AddConnectorAsNone(shape as XPoint); } else { group.AddShape(shape); } if (source != null) { source.Remove(shape); } } } if (source != null) { source.Add(group); } return group; }