Создание образца графика.
Код: Выделить всё
public void CreateTestGraph(List fileOperationLogs)
{
var graph = new Graph("complexGraph");
graph.AddNode("A");
graph.AddNode("B");
graph.AddNode("C");
graph.AddEdge("A", "B").LabelText = "Edge AB";
graph.AddEdge("A", "C").LabelText = "Edge AC";
graph.AddEdge("B", "C").LabelText = "Edge BC";
graph.LayoutAlgorithmSettings = new MdsLayoutSettings();
gViewer.Graph = graph;
}
Когда я пытаюсь добавить узел с помощью кнопки:
Код: Выделить всё
public void ButtonPressed()
{
gViewer.Graph.AddNode("D");
gViewer.Graph.AddEdge("D", "A");
gViewer.Graph = gViewer.Graph;
}

График меняется, и представление пользователя тоже меняется. На самом деле это незначительное изменение. Когда я пробую это с графом из 100 узлов, он полностью меняется после добавления пары узлов.
Лучший способ обновить граф, который я знаю, — это фактически назначить тот же граф графу просмотрщик, как его gViewer.Graph = gViewer.Graph;
Я борюсь с этим аспектом MSAGL. Трудно что-то делать после того, как график был создан. Вы можете сделать это с помощью мыши на панели редактора, но это сложно с помощью кода.
Я попробовал обычные методы добавления и удаления ребер и узлов. Я попробовал Invalidate в GViewer, но он не работает. Такие методы, как PerformLayout, ничего не делают.
Подробнее здесь: https://stackoverflow.com/questions/790 ... -from-code