2012-07-03 5 views
0

Объяснение:Получить данные из TreeView в C#

Coding:

 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 является arraylist который имеет 2 строки.

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

б также ArrayList, которые удерживают 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 

код для добавления ProductName в качестве родительского узла:

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

(((строка []) d [i]) [0]) сохранить ProductName

Код для добавления ITEMNAME в качестве дочернего узла:

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

(((строка []) б [у]) [2]) удерживайте ITEMNAME

После запуска кодирования выше. объект в ArrayList будет отображаться в Treeview

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

Вопрос:

TreeView является Treeview с флажками. Поэтому пользователь может проверить элемент, который он хочет. И скопируйте пункт в другое место. У меня здесь проблемы. Как я могу получить itemID, когда пользователь проверяет узлы?

Я хочу, чтобы элементID получил элемент, который пользователь проверяет, чтобы получить данные из базы данных и скопировать его в другое место, ссылаясь на itemID.

ответ

1

Я думаю, что вы должны сохранить item id или любую другую информацию, которую вы требуете, от item в свойстве тега узла дерева.

0

Вы должны преобразовать данные БД в объекты:

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

Если вы хотите изменить родителя, просто назначить и новый родитель для chilrends родительского имущества. Обновите список дочерних элементов родителя и нового родителя.

Смежные вопросы