Does LabelNode removed before Link

Does the LabelNode removed before the Link? Because when I select a link and press Delete, it’s the method Diagram.DeleteNode that is call. I expected DeleteLink instead.

Yes, that’s right.

In GraphLinksModel, calling RemoveLink on a link data that has a “label node data” calls RemoveNode on that label node first. It then calls the protected method DeleteLink in order to actually change the LinksSource collection and also notify about the removal.

Ok thank you!

Is there any way to bind the LabelNode.Deletable property to the Link.Deletable property if we assume that the LabelNode is part of that Link

You could data-bind both to the same data property.

You could also try binding directly:
go:Part.Deletable="{Binding Path=Node.LabeledLink.Deletable}"
If that doesn’t work, try:
go:Part.Deletable="{Binding Path=Node.LabeledLink.VisualElement.(go:Part.Deletable)}"