Based on the nice example codepen @simon created here:
…my question is:
What is the best way to access all the different properties within the node once a user clicks on the node?
For example, suppose I wanted access to the text in the textBlocks, the stroke color and width, the margins, basically any part of the node, with the idea that once accessed, it could also be edited.
Normally there are Bindings on all those properties to model data properties. So you can just look at the Node.data object to look at those properties. And you could change them by callling Model.set on the data object within a transaction, which will automatically update the GraphObjects in the Node.
Practically all of the samples use that architecture. Each sample has different properties on each of its node data objects.