C# 如何以编程方式更新SyncFusion UWP图的节点和连接器?

C# 如何以编程方式更新SyncFusion UWP图的节点和连接器?,c#,syncfusion,C#,Syncfusion,我正在评估SyncFusion SfDiagram,很难从我的C#in UWP中找到更新节点和连接器的方法?我正在根据文档中给出的示例进行测试,并将EmpId修改为字符串。结果是添加了新节点,但仍显示原始节点。我希望只看到我在C代码中添加的两个节点 我发现他们的文档有点混乱。我尝试了以下方法: XAML 谢谢你的建议,凯尔·帕特尔。我发现我必须在更新之前清空数据源设置(奇怪)。我从示例中将x:Name添加到DataSourceSettings(命名为DiagramDataSourceSettin

我正在评估SyncFusion SfDiagram,很难从我的C#in UWP中找到更新节点和连接器的方法?我正在根据文档中给出的示例进行测试,并将EmpId修改为字符串。结果是添加了新节点,但仍显示原始节点。我希望只看到我在C代码中添加的两个节点

我发现他们的文档有点混乱。我尝试了以下方法:

XAML


谢谢你的建议,凯尔·帕特尔。我发现我必须在更新之前清空数据源设置(奇怪)。我从示例中将x:Name添加到DataSourceSettings(命名为DiagramDataSourceSettings)。以下是我为清除原始节点并使用新节点更新而添加的内容:

diagram.DataSourceSettings = null;
diagram.DataSourceSettings = DiagramDataSourceSettings;
diagram.UpdateLayout();

现在的问题是,当它更新时,会将新节点放在右上角(稍微看不见)。

谢谢你的建议,Keyur Patel。我发现我必须在更新之前清空数据源设置(奇怪)。我从示例中将x:Name添加到DataSourceSettings(命名为DiagramDataSourceSettings)。以下是我为清除原始节点并使用新节点更新而添加的内容:

diagram.DataSourceSettings = null;
diagram.DataSourceSettings = DiagramDataSourceSettings;
diagram.UpdateLayout();

现在的问题是,当它更新时,会将新节点放在右上角(稍微看不见)。

请在运行时更新数据源设置,如下所示:

 Employees employees = new Employees(); 
    DataSourceSettings settings = new DataSourceSettings(); 
    settings.ParentId = "ParentId"; 
    settings.Id = "EmpId"; 


    employees.Add(new Employee() { EmpId = 1, ParentId = "", Name = "Charly", Designation = "Manager" }); 
    employees.Add(new Employee() { EmpId = 2, ParentId = "1", Name = "Ronald", Designation = "TeamLead" }); 

    settings.DataSource = employees; 
    sfdiagram.DataSourceSettings = settings; 
LayoutManager的RefreshFrequency属性支持。RefreshFrequency属性用于在更改节点或连接器集合时更新布局。提供的代码示例说明了这一点。请参考下面的代码示例

代码示例:

sfdiagram.LayoutManager.RefreshFrequency = RefreshFrequency.ArrangeParsing;

Here, sfdiagram is instance of SfDiagram 
//Diagram Loaded Event 
sfdiagram.Loaded += MainWindow_Loaded; 
void MainWindow_Loaded(object sender, RoutedEventArgs e) 
{ 
sfdiagram.LayoutManager.Layout.UpdateLayout(); 
} 

Here, sfdiagram is instance of SfDiagram. 
有关更多信息,请参阅下面的知识库链接

建议2: UpdateLayout方法支持布局。它用于安排节点位置。提供了代码示例来表示这一点

代码示例:

sfdiagram.LayoutManager.RefreshFrequency = RefreshFrequency.ArrangeParsing;

Here, sfdiagram is instance of SfDiagram 
//Diagram Loaded Event 
sfdiagram.Loaded += MainWindow_Loaded; 
void MainWindow_Loaded(object sender, RoutedEventArgs e) 
{ 
sfdiagram.LayoutManager.Layout.UpdateLayout(); 
} 

Here, sfdiagram is instance of SfDiagram. 
有关UpdateLayout的更多信息,请参阅下面的文档链接

文档链接:

问候,


Keerthivasan R.

请在运行时更新数据源设置,如下所示:

 Employees employees = new Employees(); 
    DataSourceSettings settings = new DataSourceSettings(); 
    settings.ParentId = "ParentId"; 
    settings.Id = "EmpId"; 


    employees.Add(new Employee() { EmpId = 1, ParentId = "", Name = "Charly", Designation = "Manager" }); 
    employees.Add(new Employee() { EmpId = 2, ParentId = "1", Name = "Ronald", Designation = "TeamLead" }); 

    settings.DataSource = employees; 
    sfdiagram.DataSourceSettings = settings; 
LayoutManager的RefreshFrequency属性支持。RefreshFrequency属性用于在更改节点或连接器集合时更新布局。提供的代码示例说明了这一点。请参考下面的代码示例

代码示例:

sfdiagram.LayoutManager.RefreshFrequency = RefreshFrequency.ArrangeParsing;

Here, sfdiagram is instance of SfDiagram 
//Diagram Loaded Event 
sfdiagram.Loaded += MainWindow_Loaded; 
void MainWindow_Loaded(object sender, RoutedEventArgs e) 
{ 
sfdiagram.LayoutManager.Layout.UpdateLayout(); 
} 

Here, sfdiagram is instance of SfDiagram. 
有关更多信息,请参阅下面的知识库链接

建议2: UpdateLayout方法支持布局。它用于安排节点位置。提供了代码示例来表示这一点

代码示例:

sfdiagram.LayoutManager.RefreshFrequency = RefreshFrequency.ArrangeParsing;

Here, sfdiagram is instance of SfDiagram 
//Diagram Loaded Event 
sfdiagram.Loaded += MainWindow_Loaded; 
void MainWindow_Loaded(object sender, RoutedEventArgs e) 
{ 
sfdiagram.LayoutManager.Layout.UpdateLayout(); 
} 

Here, sfdiagram is instance of SfDiagram. 
有关UpdateLayout的更多信息,请参阅下面的文档链接

文档链接:

问候,


Keerthivasan R.

我也在评估SF图

我试图从ViewModel的角度来做所有事情。我将关系图的DataSourceSetting绑定到DataSourceSettings类型的VM属性。 在ViewModel中,我将DataSourceSettings数据源属性更改为新集合

 Activities = new ObservableCollection<Activity>(App.AppState.BPAnalysis.IDEFOActivities[0].Activities.ToList());

        DS.DataSource = Activities;

        OnDiagramUpdated(EventArgs.Empty);

刷新频率行导致重新绘制。也许这会有帮助。

我也在评估SF图

我试图从ViewModel的角度来做所有事情。我将关系图的DataSourceSetting绑定到DataSourceSettings类型的VM属性。 在ViewModel中,我将DataSourceSettings数据源属性更改为新集合

 Activities = new ObservableCollection<Activity>(App.AppState.BPAnalysis.IDEFOActivities[0].Activities.ToList());

        DS.DataSource = Activities;

        OnDiagramUpdated(EventArgs.Empty);

刷新频率行导致重新绘制。这可能会有所帮助。

请在下次发布之前格式化代码。您可以在
EmployeesCollection.Clear()处添加断点
在清除集合之前检查集合中是否有任何内容。如果它是空的(我怀疑是空的),请尝试找到另一种方法来访问并清除
Employees
employeescolection
的项目或项目资源。抱歉设置了代码格式。我没有经常在这里发帖,只是玩了一会儿。CTRL+K没有清理它。我会努力的。谢谢。请在下次发布之前格式化您的代码。您可以在
employeescolection.Clear()添加断点
在清除集合之前检查集合中是否有任何内容。如果它是空的(我怀疑是空的),请尝试找到另一种方法来访问并清除
Employees
employeescolection
的项目或项目资源。抱歉设置了代码格式。我没有经常在这里发帖,只是玩了一会儿。CTRL+K没有清理它。我会努力的。谢谢。Keyur-我还设置了一个断点,在调用Clear()时检查集合。它仍然填充了我的初始节点。清除后,它确实清除了节点,我可以重新填充。但是在没有取消DataSourceSettings的情况下,旧节点仍然显示在图表中。它仍然填充了我的初始节点。清除后,它确实清除了节点,我可以重新填充。但是在没有取消DataSourceSettings的情况下,旧节点仍然显示在图表中。谢谢您的帖子。最初,我试图清除在示例中创建的命名集合(Employees)。我不再像以前那样清空DataSourceSettings,而是重新创建一个新的员工集合,并将其分配给代码中的图表DataSourceSettings。谢谢。谢谢你的帖子。最初,我试图清除在示例中创建的命名集合(Employees)。我现在重新创建一个新的员工和分配集合,而不是像以前那样取消数据源设置