Hello,
I’ve encountered problem with drawing links with specified routing points. Below are defined 3 functions:
public void LoadXml(Diagram diagram)
{
var root = XElement.Load("file.xml");
_routineDiagram = diagram;
diagram.LayoutCompleted += LoadLinkRoutes;
_routineDiagram.PartManager.UpdatesRouteDataPoints = false;
Model.Load<NodeModel, LinkModel>(root, "Node", "Link");
}
public void LoadDb(Diagram diagram)
{
//local variables - holds items readed from file
var nodes = new List<NodeModel>();
var links = new List<LinkModel>();
/*loading nodes and links from database to above structures*/
//...
_routineDiagram = diagram;
diagram.LayoutCompleted += LoadLinkRoutes;
_routineDiagram.PartManager.UpdatesRouteDataPoints = false;
//add readed nodes to nodes source
foreach (var node in nodes)
{
Nodes.Add(node);
}
//add readed nodes to links source
foreach (var link in links)
{
Links.Add(link);
}
}
private void LoadLinkRoutes(object sender, DiagramEventArgs e)
{
_routineDiagram.LayoutCompleted -= LoadLinkRoutes;
foreach (var link in _routineDiagram.Links)
{
var linkModel = link.Data as LinkModel;
if (linkModel != null)
{
link.Route.Points = linkModel.Points?.ToList();
}
}
_routineDiagram.PartManager.UpdatesRouteDataPoints = true;
}
LoadXml method works fine (example copied from goXam “Logic Circuit” demo), but when I want to add links manually (LoadDB method) routing points are being reset to default. Below picture shows both results.
Could You explain me what I’m doing wrong?
Thanks in advance.