色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

Silverlight中使用遞歸構造關系圖

  這兩天遇到一個問題,項目中需要在silverlight中使用連接圖的方式來顯示任務之間的關系,總體有父子和平行兩種,昨天在改同事的代碼,一直出問題,索性晚上寫了一下實現方法。

  需求

  有一個List對象中存了若干個Task,這些Task對象通過ParentID屬性進行關聯,現在要求將這個List中的任務使用圖的方式形成如父子關系和平行關系的圖示例如下圖:

image

  實現方法思考

  剛開始接到這個任務我就想著遞歸應該可以搞定了,但是仔細考慮才發現每個任務的子任務需要在一定區域內才行,需要計算子級和子級之間的距離,如果使用遞歸,例如上圖的元素“12”的位置就沒有辦法很好確定了。

  我決定將途中的節點抽象為一個類,這個類至少應該含有上邊界top,左邊屆left及節點的名稱等屬性,然后從這個List對象中構造出每個節點的屬性。

  實現步驟

  1,首先我們為圖模擬一個數據源,注意其中的任務是通過ParentID關聯的。

代碼private static List<Task> listTask; 
        
public MainPage() 
        { 
            InitializeComponent(); 
            listTask 
= new List<Task>(); 
            listTask.Add(
new Task() { ID = 1, ParentID = 0, Name = "1" }); 
            listTask.Add(
new Task() { ID = 2, ParentID = 1, Name = "11" }); 
            listTask.Add(
new Task() { ID = 3, ParentID = 1, Name = "12" }); 
            listTask.Add(
new Task() { ID = 4, ParentID = 2, Name = "21" }); 
            listTask.Add(
new Task() { ID = 5, ParentID = 2, Name = "22" }); 
            listTask.Add(
new Task() { ID = 6, ParentID = 3, Name = "31" }); 
            listTask.Add(
new Task() { ID = 7, ParentID = 3, Name = "32" }); 
            listTask.Add(
new Task() { ID = 8, ParentID = 3, Name = "33" }); 
            listTask.Add(
new Task() { ID = 9, ParentID = 4, Name = "42" }); 
            listTask.Add(
new Task() { ID = 10, ParentID =4, Name = "42" }); 
            listTask.Add(
new Task() { ID = 11, ParentID =3, Name = "34" }); 
            listTask.Add(
new Task() { ID = 12, ParentID = 5, Name = "51" }); 
            listTask.Add(
new Task() { ID = 13, ParentID = 8, Name = "81" }); 
            
this.Loaded += new RoutedEventHandler(MainPage_Loaded); 
        }

NET技術Silverlight中使用遞歸構造關系圖,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 杭锦旗| 裕民县| 陆川县| 瑞丽市| 藁城市| 昭平县| 普宁市| 东乡族自治县| 石棉县| 神池县| 绥中县| 衡阳县| 修武县| 遂宁市| 冕宁县| 沙湾县| 镇巴县| 德令哈市| 土默特右旗| 珲春市| 马鞍山市| 翼城县| 曲靖市| 长葛市| 抚顺市| 两当县| 杂多县| 崇仁县| 马边| 福鼎市| 清水县| 乌兰浩特市| 三亚市| 德令哈市| 兰溪市| 绵竹市| 双流县| 隆安县| 北海市| 华安县| 福清市|