
public interface ISubGraphModel : IDiagramModel, IGroupsModel
The restriction that each node can have at most one container node means that there is basically a property for each node data that is a reference to its container node, if any.
When that property is changed, DoGroupNodeChanged must be called. You can get the container group by calling GetGroupForNode. You can set the container group by calling SetGroupNode.
Note that this interface is universal, because it can only assume the node data is of type System.Object. The corresponding methods in the generic model classes operate on and return a specific node data type.