2012-07-04 2 views
0

У меня есть два ArrayLists с именем ProductList и ItemList.Устанавливает значение в ArrayList в TreeView

ProductList содержит две строки [] массивов.

string[0] string[1] 
--------- ----------- 
ProductID ProductName 
--------- ------------- 
    A001  Food 
    B120  NotFood 

ITEMLIST содержит три String [] массивы.

string[0] string[1] string[2] 
--------- ----------- ----------- 
ProductID ItemID  ItemName 
--------- ----------- ----------- 
    A001  X12332  Rice 
    A001  X2133   Pepsi 
    A001  X12450  Sardine 
    B120  H1LKL   Pen 
    B120  JLA122  Printer 

Я хочу показать эти данные в TreeView.

Так что я написал кодирование, как показано ниже:

for(int i = 0; i <ProductList.Count; i++) //loop for every item in ProductList 
{ 
    TreeNode node = new TreeNode(((string[])ProductList[i])[1]); //create Parent node using ProductName 
    TreeView.Nodes.Add(node); //add node into TreeView 
    for(int j = 0; j < ItemList.Count; i++) //loop for every item in ItemList 
    { 
     if(((string[])ProductList[i])[0] == ((string[])ItemList[j])[0]) //Compare if ProdutID in ProductList same with ProductID in ItemList 
     { 
      node.Nodes.Add(((string[])ItemList[j])[2]); //Add ItemName from ItemList as Child node for current Parent Node 
     } 
    } 
} 

Запуск выше код, я получаю следующий результат:

+Food 
- Rice 
- Pepsi 
- Sardine 
+NotFood 
- Pen 
- Printer 

Вопрос: Как я могу получить ItemID когда пользователь выбирает узел?

Спасибо.

+0

Извините, что вы еще не ответили на свой вопрос, но один важный вопрос: вы должны изменить свой ArrayList на список . Таким образом вам не нужны эти бокс ((строка []) item). Ваш код станет намного чище и быстрее. –

+0

@AndreCalil im используя .net 2.0. не поддерживают свойство List. btw.thx. –

+0

Пожалуйста, обратитесь к документу «Список документов» в MSDN: http://msdn.microsoft.com/en-us/library/6sh2ey19(v=vs.80).aspx –

ответ

0

Теперь, к вопросу вашего вопроса: TreeNode имеет два интересных свойства: имя и текст. Текст - это то, что читает пользователь, а Name - произвольное, ну, имя. Возможно, когда вы добавляете элементы в TreeView, вы можете установить ItemID как имя TreeNode.

0

Свойство Tag можно использовать для хранения дополнительной информации об узле (в вашем случае это может содержать ID). Позже щелчок узла вы сможете получить эту информацию. Вот MSDN Link