TreeViewを備えたWindowsアプリがあり、このビューのノードを展開して子ノードにドリルダウンできるとしましょう。子がさらにある可能性があるため、そのノードを展開してさらに進むことができます。私のソースコードFoo(string fatherNode)
クリックした親ノードを取得し、子を見つけて一覧表示するメソッドがあります。
このメソッドの高レベルの本体は次のようになります。
private void Foo(string fatherNode)
{
// call some DB scripts and grab data you need to work with.
int numberOfKids = // get it from the thing you populated from the DB call.
for(int i = 1 to numberOfKids)
{
Node Child = // grab child[i] from the list we populated from DB calls
//Add it to the treeView
}
}
そのコードはUIアプリに適しています。ノードをクリックすると、このメソッドが1回実行され、必要なデータが収集されます。次に、上記のメソッドの便利な行を使用して別のメソッドを作成する必要があります。ファイルとしましょう。
ですから、私の頭の中では、再帰的な方法のように見えます。しかし、それでも全体像を把握することはできません。Probには2つのコレクションが必要です。1つは父親用、もう1つは子供用で、子供をループして再帰的に呼び出し、より多くの子供を取得してコレクションに追加します。
霧、私がしなければならないことのハイレベル、コレクションがどのように見えるべきか、それらに追加する場所、再帰的なメソッド呼び出しを呼び出す場所などをクリアできるかどうか疑問に思いました...そしてお願いします「ツリービュー」オブジェクトについて具体的に考えるのではなく、質問をより適切に説明するための例としてそれを使用しました。主なものは、私が投稿したFooメソッドの構造です。それが私が取り組むべきことです。