У меня есть два 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
когда пользователь выбирает узел?
Спасибо.
Извините, что вы еще не ответили на свой вопрос, но один важный вопрос: вы должны изменить свой ArrayList на список. Таким образом вам не нужны эти бокс ((строка []) item). Ваш код станет намного чище и быстрее. –
@AndreCalil im используя .net 2.0. не поддерживают свойство List. btw.thx. –
Пожалуйста, обратитесь к документу «Список документов» в MSDN: http://msdn.microsoft.com/en-us/library/6sh2ey19(v=vs.80).aspx –