次のような入力ストリームがあります。
John
Peter
Vanesa
Vanesa.New
Josh
Josh.New
Josh.New.Under
...
次のように TreeView Someting にノードを追加する必要があります。
+Customers
+John
+Peter
+Vanesa
+New
+Josh
+New
+Under
...
すべての文字列をパラメータ '.' で分割する考えがありますが、動的にロードされるノードに問題があります。たぶん、ある種の foreach を使用する必要があります...
レコード ID と GroupName を持つ古いデータベース テーブル「グループ」があります。これらの文字列で満たされています。John.Element または Vanesa.New.Element または Josh.New.Under.Element のような「アドレス」を作成する必要があります。Element は他のデータテーブルのレコードです。DB接続は問題ではありません。問題はツリーを動的に埋めることです
今のところ、「.」を含まない文字列を追加しました:
reader = readGroups.ExecuteNonQuery();
while(reader.Read())
{
string[] buff = reader.GetValue(1).ToString().Split('.');
if (buff.Length == 1)
{
treeView1.Nodes[0].Nodes.Add(reader.GetValue(1));
}
else
{
//group contains '.'
}
}
編集:もう1つ問題があります。次のようなレコードがあります: John、John.New、John.Old、John.Older、John.Oldest ... したがって、AddNodes() メソッドが実行されると、メソッドの最後の foreach が John.New、John をクリアします。 Old, John.Older ノードですが、ツリーノード John に移動する必要があります。何かアイデアがあれば...