When a node object is dragged from the palette to the diagram, a semi-unique key is generated.
Try overriding your model’s MakeNodeKeyUnique method.
Ok - I have this working, but it only fires when a dupe key is found. I am experimenting with setting the key to a GUID. However, the first instance of the node does get a GUID because no dupe key is found, thus this event doesn’t fire.
I’m not sure exactly what circumstances you have, but you could override the InsertNode protected method which gets called to actually perform the addition of a new node data to the NodesCollection.
However, I don’t understand if this will satisfy your requirements.