My diagram has a mode in which nodes can be selected, but cannot be deleted. The deletion request is denied with a user message explaining what happened. Because I'm using a MVVM setup, I'm overriding RemoveItem in my GraphSource like so:
public override bool RemoveItem(DisplayNode node)
{
if (m_MainVM.NoDeleteAllowed)
return false;
return base.RemoveItem(node);
}
That works as expected, BUT: any connections to/from the node that is not actually getting deleted have already been updated with null references when I reach this part of the code. The Source or Target property of those RadDiagramConnections has been set to null where the node was referenced before. Obviously that's not what I want since the node is not actually getting deleted.
Where do I handle this behavior and prevent it? The RadDiagram events don't seem to catch this case. I could reconstruct the RadDiagramConnection's Source or Targets, I guess. But that seems like a hack.