0

我有两个名为ProductList和的 ArrayList ItemList

ProductList包含两个string[]数组。

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用户选择节点的时间?

谢谢。

4

2 回答 2

0

您可以使用该Tag属性来存储有关节点的其他信息(在您的情况下,它可以保存ID)。稍后在节点单击时,您应该能够获得此信息。这是MSDN 链接

于 2012-07-04T02:47:29.710 回答
0

现在,就您的问题而言:TreeNode 有两个有趣的属性,名称和文本。Text 是用户阅读的内容,Name 是一个任意的名称。也许,当您将项目添加到 TreeView 时,您可以将 ItemID 设置为 TreeNode 的名称。

于 2012-07-04T02:54:31.557 回答