私はTreeView(myTreeview)を持っている場合、どのように選択されたノードのすべての親ノード(親、親の親など)を取得できますか?TreeViewコントロールで選択されたすべての親(ルートまで)のノードを取得するには?
3
A
答えて
6
、次はあなたの問題のためであります):
IList<TreeNode> ancestorList = TreeHelpers.GetAncestors(node, x => x.Parent).ToList();
はなぜリスト<> .Add()を使用するよりも、この良いですか? --FirstOrDefault(x => ...)などのLazy LINQ関数を使用できるため、
P.S.列挙結果に「現在の」アイテムが含まれるように、代わりにTItem curItem = getParentFunc(item)
2
実際のオブジェクトが必要な場合は、ルートに達するまでTreeNode.Parentプロパティを再帰的に使用します。何かのように:あなたのコンテキストで(
public static class TreeHelpers
{
public static IEnumerable<TItem> GetAncestors<TItem>(TItem item, Func<TItem, TItem> getParentFunc)
{
if (getParentFunc == null)
{
throw new ArgumentNullException("getParentFunc");
}
if (ReferenceEquals(item, null)) yield break;
for (TItem curItem = getParentFunc(item); !ReferenceEquals(curItem, null); curItem = getParentFunc(curItem))
{
yield return curItem;
}
}
//TODO: Add other methods, for example for 'prefix' children recurence enumeration
}
をと使用方法の例:私は、たとえば、独自のツリーヘルパーのセットを作成することをお奨めするのだ
private void GetPathToRoot(TreeNode node, List<TreeNode> path)
{
if(node == null) return; // previous node was the root.
else
{
path.add(node);
GetPathToRoot(node.Parent, path);
}
}
-1
の私は、あなたがノード
List<TreeNode> resultNodes = new List<TreeNode>()
private void GetNodesToRoot(TreeNode node)
{
if(node == null) return; // previous node was the root.
else
{
resultNodes.add(node);
GetNodesToRoot(node.Parent);
}
}
関連する問題
- 1. JavaScriptでTreeViewの選択ノードを取得
- 2. 親ノードがangle-ivh-treeviewで選択されたときに葉ノードのみを取得する
- 3. TreeViewで選択したノードのインデックスを取得する
- 4. Silverlight Toolkit Treeview:選択したアイテムの親を取得する
- 5. RadTreeViewで選択したノードの親ノードを取得していますか?
- 6. JS Tree - すべての子ノードが選択されているときに親ノードを選択します。
- 7. TreeViewのどのノードが選択されていますか(PySide)?
- 8. Silverlight 4:TreeView/HierarchicalDataTemplate /選択されたノード/リーフの問題を取得
- 9. TreeViewですべての可視ノードを取得する
- 10. TreeViewコントロールのすべてのツリーノードのリストを取得します。
- 11. TreeViewの選択されたノードに対する新しいノードの追加
- 12. VirtualStringTreeですべてのルートまたはすべての子ノードを選択する方法は?
- 13. TreeList - 現在選択されている親ノードの最後の子ノードを取得する方法は?
- 14. 親コントロールのすべての子を取得するには?
- 15. SQLで親に関連するすべてのノードを取得
- 16. ASP.NETすべてのTreeViewノードを取得する
- 17. zkの動的ツリーの親ノードの選択時にすべての子ノードを選択する方法は?
- 18. 親ノードのすべての子ノードを取得するneo4j
- 19. C#TreeView、子ノードが選択されたときのイベント
- 20. vb6の複数選択リストボックスで選択されたすべての値を取得する方法は?
- 21. CKEDITOR ::選択したテキストの親ノードを取得
- 22. 別のノードセットで選択されたノードの位置を取得する方法
- 23. jstree checkboxプラグインで親ノードが選択されているときに、子ノードの値をすべて取得する方法
- 24. Win32 TreeViewコントロールの幅を取得する
- 25. TreeViewノードの画像インデックスは、選択時に変更されます
- 26. Prototype $$()のすべての選択に対して、選択された値(空ではない)をすべて取得する方法はありますか?
- 27. jstree:親ノードをクリックすると、すべての子要素のみが選択され、親は選択されません。
- 28. TreeView強制親ノードがチェックされる
- 29. jstreeで部分的に選択された親IDを取得する方法
- 30. ASP.NET:複数のTreeViewノードを選択するには?
何地獄の男の配列を取る必要があると思う、
TItem curItem = item
を使うのか?あなたは私のコードをコピーしました。 – Tudorちょっと違反...私はちょうどあなたが2番目のパラメータを必要としないことを意味した –