0

説明:

コーディング :

       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

ProductName を親ノードとして追加するコード:

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

(((string[])d[i])[0])は ProductName を保持します

itemName を Child Node として追加するコード:

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

(((string[])b[j])[2]) itemNameを保持します

上記のコーディングを実行した後。arrayList のオブジェクトが Treeview に表示されます

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

質問 :

ツリービューはチェックボックス付きのツリービューです。そのため、ユーザーは自分が欲しいアイテムをチェックできます。アイテムを別の場所にコピーします。ここでいくつか問題があります。ユーザーがノードでチェックするときに itemID を取得するにはどうすればよいですか?

データベースからデータを取得し、itemID を参照して別の場所にコピーするためにユーザーがチェックするアイテムを取得するための itemID が必要です。

4

2 に答える 2

1

ツリーノードのtagプロパティに、item idまたはその他の必要な情報を格納する必要があると思います。item

于 2012-07-03T07:06:48.097 に答える
0

DB データをオブジェクトに変換する必要があります。

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

親を変更したい場合は、chirlends 親プロパティに新しい親を割り当てます。親と新しい親の子リストを更新します。

于 2012-07-03T07:18:24.157 に答える