3

TreeNode.ChildNodesのイベントにデータを入力する必要がありTreeView.TreeNodeExpandedます。問題は、イベントが発生する前にノードが空であり、この場合は展開できず、その横に展開アイコン[+]が表示されないことです。

関連するオブジェクトに子があり、それらの子をノードに追加しない場合に備えて、ノードを拡張可能にしたいと思います。

ノードに仮想の子を追加し、展開時に削除することを考えました。より良いオプションはありますか?

ありがとうございました。

4

3 に答える 3

3

トリックを行うための3つのステップ:

1- TreeView.ExpandDepth0に設定します。TreeNodeこれにより、に追加されたオブジェクトの展開がなくなり、プロパティがtrueに設定されている各オブジェクトの横にTreeView展開記号[+]が表示されます。TreeNodeTreeNode.PopulateOnDemand

2-各ブランチのTreeNode.PopulateOnDemandTrueに設定します。コレクションがの場合、拡張記号[+]は、プロパティがtrueに設定されているオブジェクトの横にのみ表示されます。 TreeNodeTreeNode.ChildNodesTreeNodeTreeNode.PopulateOnDemand

3- TreeView.TreeNodePopulateイベントを処理して、拡張時にブランチノードを作成します。このイベントは、イベントが発生する直前に-がtrueTreeNodeTreeNode.PopulateOnDemand設定されている-が展開されたときに発生します。TreeView.TreeNodeExpanded

于 2011-07-14T11:49:45.340 に答える
0

ノードのテンプレートを編集することをお勧めします。テンプレートを使用したASP.NETAJAXTreeViewコントロールをご覧ください

于 2011-07-12T08:12:46.953 に答える
0

よくわかりません。試す時間はありませんが、 TreeNode.PopulateOnDemandプロパティとTreeView.TreeNodePopulateイベントが必要だと思います。

于 2011-07-12T13:15:33.567 に答える