or
Hello,
when I populate the graph with so many connections outgoing from a specific node, it takes so so so much time!
Here is my graph source
class GraphSource : GraphSourceBase<Node, Link>
{
List<Cluster> clusters = new List<Cluster>();
public GraphSource()
{
Cluster c1 = new Cluster("Cluster1");
Cluster c2 = new Cluster("Cluster2");
Cluster c3 = new Cluster("Cluster3");
Cluster c4 = new Cluster("Cluster4");
Cluster c5 = new Cluster("Cluster5");
Cluster c6 = new Cluster("Cluster6");
ECU eCU1 = new ECU("ECU1");
ECU eCU2= new ECU("ECU2");
ECU eCU3 = new ECU("ECU3");
ECU eCU4 = new ECU("ECU4");
ECU eCU5 = new ECU("ECU5");
ECU eCU6 = new ECU("ECU6");
ECU eCU7 = new ECU("ECU7");
ECU eCU8 = new ECU("ECU8");
ECU eCU9 = new ECU("ECU9");
ECU eCU10 = new ECU("ECU10");
ECU eCU11 = new ECU("ECU11");
ECU eCU12 = new ECU("ECU12");
ECU eCU13 = new ECU("ECU13");
ECU eCU14 = new ECU("ECU14");
ECU eCU15 = new ECU("ECU15");
ECU eCU16 = new ECU("ECU16");
ECU eCU17 = new ECU("ECU17");
ECU eCU18 = new ECU("ECU18");
ECU eCU19 = new ECU("ECU19");
ECU eCU20 = new ECU("ECU20");
c1.AddECU(eCU1);
c1.AddECU(eCU2);
c1.AddECU(eCU3);
c1.AddECU(eCU4);
c1.AddECU(eCU5);
c2.AddECU(eCU1);
c2.AddECU(eCU6);
c2.AddECU(eCU7);
c2.AddECU(eCU8);
c2.AddECU(eCU9);
c2.AddECU(eCU10);
c2.AddECU(eCU11);
c2.AddECU(eCU12);
c2.AddECU(eCU13);
c3.AddECU(eCU13);
c3.AddECU(eCU17);
c3.AddECU(eCU18);
c3.AddECU(eCU19);
c4.AddECU(eCU11);
c4.AddECU(eCU12);
c4.AddECU(eCU13);
c4.AddECU(eCU14);
c5.AddECU(eCU15);
c5.AddECU(eCU16);
c5.AddECU(eCU17);
c5.AddECU(eCU18);
c6.AddECU(eCU19);
c6.AddECU(eCU20);
clusters.Add(c1);
clusters.Add(c2);
clusters.Add(c3);
clusters.Add(c4);
clusters.Add(c5);
clusters.Add(c6);
}
public void PopulateGraph()
{
foreach (Cluster cluster in clusters)
{
Node vNode = new Node() { Width=10,Height=10};
this.AddNode(vNode);
foreach (ECU eCU in cluster.GetECUs())
{
IEnumerable<Node> res = from Node nn in this.Items where eCU.Name.Equals(nn.Content) select nn;
if (res.Count() == 0)
{
Node eNode = new Node() { Content = eCU.Name };
this.AddNode(eNode);
this.AddLink(new Link(vNode, eNode));
}
else
{
this.AddLink(new Link(vNode, res.First()));
}
}
}
}
}
Thanks in advance,
Hassan
<telerik:RadRibbonTab xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"<br> xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" <br> x:Class="TelerikWpfApp1.Views.HomeRibbonView"<br> xmlns:telerik="clr-namespace:Telerik.Windows.Controls;assembly=Telerik.Windows.Controls.RibbonView"<br> Header="Home"><br> <telerik:RadRibbonGroup Header="Jobs"><br> <telerik:RadRibbonButton Content="Job List" Command="{Binding OpenJobListCommand}" /><br> </telerik:RadRibbonGroup><br> <telerik:RadRibbonGroup Header="Data"><br> <telerik:RadRibbonButton Content="Sync Data" Command="{Binding OpenSyncViewCommand}" /><br> </telerik:RadRibbonGroup><br></telerik:RadRibbonTab><telerik:RadCarousel x:Name="RadCarousel" Background="Transparent" Margin="10,10,0,0" Height="72" VerticalAlignment="Top" HorizontalScrollBarVisibility="Hidden" ItemTemplate="{StaticResource CarouselItemTemplate}" ItemsSource="{Binding}" SelectionChanged="RadCarousel_SelectionChanged" SelectedItem="{Binding SelectedItem, Mode=TwoWay}"> <telerik:RadCarousel.ItemsPanel> <ItemsPanelTemplate> <telerik:RadCarouselPanel Path="{StaticResource horizontalPath}"/> </ItemsPanelTemplate> </telerik:RadCarousel.ItemsPanel> </telerik:RadCarousel>
my Code behind is this
public void LoadSalesPerson(object sender, RoutedEventArgs e) { DataClasses1DataContext conn = new DataClasses1DataContext(); List<GetSalesPeopleResult> getSalesPeopleResults = (from s in conn.GetSalesPeople() select s).ToList(); RadCarousel.ItemsSource = getSalesPeopleResults; } private void RadCarousel_SelectionChanged(object sender, Telerik.Windows.Controls.SelectionChangeEventArgs e) { int index = RadCarousel.Items.IndexOf(RadCarousel.SelectedItem); int smm = RadCarousel.ElementAt(index); }