Categories: .Net, C#, Silverlight Posted by mheydt on 10/19/2008 10:01 PM | Comments (2)
I've finally posted a working version of my Silverlight directed graph control. You can see it below. Specifically, this is a "roamer" version of the control that allows you to navigate across large data sets.

I initially built this off of the Flex control by Mark Shepard that does roaming.  I did this initially to first learn Flex and Actionscript, but mostly to learn the difference between those and Silverlight / C#.

After having that working, I made a number of modifications to extend the application as well as make it utilize more modern constructs such as dependency injection and IoC with Unity for Silverlight.  I'll explain specifically what I did with examples in follow up posts.

The control as you can see is right here:


Go ahead, click on nodes, drag them, change the depth and see how it drills into / out of the data set, and use the forward and back to navigate nodes you've visited already.

There are still some issues with the operation of the control that I need to work out (which I think are issues with the initial flex app). Specifically, if you navigate to a node in history mode that is not adjacent to others in the history, the graph can tend to break. This is solvable by adding a path search between the new node and others in the history, but I've not had time yet.  There are some issues yet also with the event model / clicking on nodes, but I'll fix those soon as I just wanted to get this up here as soon as I could.

Here also is the spring graph version of the control.  With this you can add nodes and edges, drag elements, and a few other things:

Comments

Juha Pehkonen
Juha Pehkonen on 11/12/2008 9:28 AM Hi Michael,

I for one am anxiously looking forward to your graph control. I've been using Mark Shepard's excellent component in my Flex applications and even considered porting it myself. Thanks to you, I don't have to Smile

Thanks!
Juha
julio
julio United States on 1/17/2010 11:26 PM i am new to Silverlight. thanks for your post. it provides me some new things.