2015-08-20 32 views
0

afterSelect事件中,我想展開一個treeNode以獲取它的子項。我嘗試了功能expand()expandAll(),但沒有任何反應。我正在使用C#與syncfusion。如何在c中的afterSelect事件中展開TreeNode#

事件:

void tvNavigation_AfterSelect(object sender, EventArgs e) 
{ 
    var selNode = mFP.TreeViewPresenter.SelectedNode.Text; 
    if (treeViewElements.Count > 0) 
    { 
     foreach (TreeNodeAdv tna in treeViewElements) 
     { 
      if (selNode == tna.Text) 
      { 
       tna.ExpandAll(); //does not expand 
       var expNodes = (ArrayList)tna.Nodes.Clone(); 
       subTreeViewElements = expNodes.Cast<TreeNodeAdv>().ToList(); 
       break; 
      } 
     } 
    } 
} 

這是syncfusion的錯誤嗎?

回答

0

Expand()和ExpandAll()函數工作正常。請在迭代時檢查您的節點集合是否包含TreeNodeAdv文本。我準備了一個樣本供您參考,它可以從下面的位置下載。

您可以使用下面的代碼片段遍歷TreeViewAdv中的所有節點。

IEnumerable的收集(TreeNodeAdvCollection節點) { 的foreach(在節點TreeNodeAdv節點) { 收率返回節點;

  foreach (var child in Collect(node.Nodes)) 
       yield return child; 
     } 
    } 

樣本定位:https://onedrive.live.com/redir?resid=7FCA130657D0D73E!135&authkey=!AH4aFdd3ZTd6T4c&ithint=file%2czip