Add shape with binding to node after initialization not working

Is there a way to add dynamically to an existing node shape with binding?
Example code ( svg does not refresh )

function addExtraPort(node) {
if (!(node instanceof go.Node)) return false;

var port = go.GraphObject.make(go.Shape, "Circle", {
        portId: "x1",
        alignment: new go.Spot(0.7, 0.7),
        desiredSize: new go.Size(10, 10)
    new go.Binding("geometryString", "geo", function(d, e) {
        return "F M0 0 L100 0 Q150 50 100 100 L0 100 Q50 50 0 0z";

myDiagram.model.setDataProperty(, "geo", "F M0 0 L100 0 Q150 50 100 100 L0 100 Q50 50 0 0z");


Yes, there is a way to achieve this, by data binding the Panel.itemArray property and providing a Panel.itemTemplate.

Samples that demonstrate this: (not ports, just a variable list of text) (each item is both a port and a row in a Table Panel) (four arrays, one on each side)