private void BindGraphSource()
        {
            ObservableGraphSourceBase <OrgItem, OrgLink> source = new ObservableGraphSourceBase <OrgItem, OrgLink>();
            OrgItem rootItem = new OrgItem()
            {
                Label = "CEO"
            };

            source.AddNode(rootItem);
            for (int i = 0; i < 3; i++)
            {
                OrgItem child = new OrgItem()
                {
                    Label = "Manager " + i, HeadCount = r.Next(5, 25).ToString()
                };
                source.AddNode(child);
                source.AddLink(new OrgLink(rootItem, child)
                {
                    Content = i
                });
                for (int j = 0; j < 3; j++)
                {
                    OrgItem subchild = new OrgItem()
                    {
                        Label = "Team Lead " + i + "." + j, HeadCount = r.Next(5, 25).ToString()
                    };
                    source.AddNode(subchild);
                    source.AddLink(new OrgLink(child, subchild)
                    {
                        Content = j + 3 * i
                    });
                }
            }
            this.diagram.GraphSource = source;
        }
 public MainViewModel()
 {
     this.Employees = new ObservableGraphSourceBase <CustomNode, LinkViewModelBase <CustomNode> >();
     this.Employees.AddNode(new CustomNode()
     {
         FirstName   = "Andrew",
         LastName    = "Fuller",
         Email       = "*****@*****.**",
         Phone       = "(205) 555 - 9898",
         Address     = "London, 120 Hanover Sq.",
         Position    = new Point(250, 250),
         ImagePath   = "/Images/AndrewFuller.jpg",
         JobPosition = "CEO"
     });
 }