2012-07-03 18 views
0

說明從樹視圖中的數據:獲取C#

編碼:

 for (int i = 0; i < d.Count; i++) //loop for Product 
      { 
       TreeNode node = new TreeNode(((string[])d[i])[0]); 
       thisForm.NewBKMTreeView.Nodes.Add(node); //add Product as Parent Node 

       for (int j = 0; j < b.Count; j++) //loop for Item 
       { 
        if (((string[])d[i])[1] == ((string[])b[j])[0]) //compare if ProductID from arrayList d same with ProductID from arrayList b 
        { 
         node.Nodes.Add(((string[])b[j])[2]); //add Item as Child Node 
        } 
       } 
      } 
從上面的代碼

d數組列表包含2個字符串。

string[0]  string[1] 
ProductName  ProductID 
----------- ----------- 
    Food    001 
    NotFood   002 

b數組列表持有3串

string[0]  string[1]  string[2] 
ProductID  itemID   itemName 
    001   X101   Soup 
    001   X102   Bread 
    002   G111   Pen 
    002   G212   Book 
    002   G222   Ruler 

代碼添加產品名稱作爲父節點:

TreeNode node = new TreeNode(((string[])d[i])[0]); 

(((字符串[]) d [i])[0])保存產品名稱

代碼以ITEMNAME添加作爲子節點:

node.Nodes.Add(((string[])b[j])[2]); 

(((字符串[])B [j])[2])保持ITEMNAME

運行後的編碼以上。在ArrayList中的對象將呈現樹形

+Food 
- Soup 
- Bread 
+NotFood 
- Pen 
- Book 
- Ruler 

問:

TreeView所樹視圖用複選框。所以用戶可以檢查他想要的物品。並將項目複製到另一個地方。我在這裏遇到了一些問題。 如何在用戶檢查節點時獲取itemID?

我想讓itemID獲取用戶檢查以從數據庫獲取數據並將其複製到引用itemID的另一個位置的項目。

回答

1

我認爲您應該在樹節點的標籤屬性中存儲item id或您需要的任何其他信息item。如果你想改變家長,只是分配和新父母的chilrends parent屬性

public class MyNode 
{ 
    public MyNode Parent { get; set; } 
    public ObservableCollection<MyNode> Children { get; set; } 
    public string ItemId { get; set; } 
    // ... 
} 

0

您應該在DB數據轉換爲對象。更新父母和新父母的孩子列表。