TreeNode.ChildNodes
のイベントにデータを入力する必要がありTreeView.TreeNodeExpanded
ます。問題は、イベントが発生する前にノードが空であり、この場合は展開できず、その横に展開アイコン[+]が表示されないことです。
関連するオブジェクトに子があり、それらの子をノードに追加しない場合に備えて、ノードを拡張可能にしたいと思います。
ノードに仮想の子を追加し、展開時に削除することを考えました。より良いオプションはありますか?
ありがとうございました。
トリックを行うための3つのステップ:
1- TreeView.ExpandDepthを0に設定します。TreeNode
これにより、に追加されたオブジェクトの展開がなくなり、プロパティがtrueに設定されている各オブジェクトの横にTreeView
展開記号[+]が表示されます。TreeNode
TreeNode.PopulateOnDemand
2-各ブランチのTreeNode.PopulateOnDemandをTrueに設定します。コレクションが空の場合、拡張記号[+]は、プロパティがtrueに設定されているオブジェクトの横にのみ表示されます。 TreeNode
TreeNode.ChildNodes
TreeNode
TreeNode.PopulateOnDemand
3- TreeView.TreeNodePopulateイベントを処理して、拡張時にブランチノードを作成します。このイベントは、イベントが発生する直前に-がtrueTreeNode
にTreeNode.PopulateOnDemand
設定されている-が展開されたときに発生します。TreeView.TreeNodeExpanded
ノードのテンプレートを編集することをお勧めします。テンプレートを使用したASP.NETAJAXTreeViewコントロールをご覧ください。
よくわかりません。試す時間はありませんが、 TreeNode.PopulateOnDemandプロパティとTreeView.TreeNodePopulateイベントが必要だと思います。