Devexpress XtraList使子节点的父节点?

问题描述:

我有一个XtraTreeList与几个父节点,每个父节点有几个子节点附加到他们。Devexpress XtraList使子节点的父节点?

我想从他们的父节点中提取所有子节点,删除父节点,然后将所有这些子节点作为父节点进行绑定。总之,我想删除父节点,并使所有的孩子作为父节点。

我尝试了几种使用TreeList.MoveNode()的方法,但是这对我不起作用。

编辑:

我已经删除了我以前的答案,并增加了新的一个工作正常。

我做的工作,周围的人,我选择了从代码中的所有节点,并称为DeleteSelectedNodes(),这里是代码:

  List<int> nodeIdsToMove = new List<int>(); 
     List<int> nodeIdsToRemove = new List<int>(); 

     if (comboBox_GroupBy.SelectedItem.ToString() == "None") 
     { 
      /* Parent nodes */ 
      foreach(TreeListNode parentNode in treeList_Links.Nodes) 
      { 
       nodeIdsToRemove.Add(parentNode.Id); 
       if (parentNode.HasChildren) 
       { 
        /* Child nodes */ 
        foreach (TreeListNode childNode in parentNode.Nodes) 
         nodeIdsToMove.Add(childNode.Id); 
       } 
      } 

      MoveNodes(nodeIdsToMove); 
      RemoveNode(nodeIdsToRemove); 

这里是MoveNode和的removeNode FPGA实现:

 private void MoveNodes(List<int> nodeIdsToMove) 
    { 
     foreach (int nodeId in nodeIdsToMove) 
      treeList_Links.MoveNode(treeList_Links.FindNodeByID(nodeId), null); 
    } 

私人无效的removeNode(列表nodeIdsToRemove) { /* Enalbe多选*/ treeList_Links.OptionsSelection.MultiSelect = TRUE;

 /* Get nodes to select */ 
     ArrayList nodesToSelect = new ArrayList(); 
     foreach (int nodeId in nodeIdsToRemove) 
      nodesToSelect.Add(treeList_Links.FindNodeByID(nodeId)); 

     /* Select nodes */ 
     treeList_Links.Selection.Set(nodesToSelect); 

     /* Delete selected nodes */ 
     treeList_Links.DeleteSelectedNodes(); 

     /* Disable multiselect */ 
     treeList_Links.OptionsSelection.MultiSelect = false; 
    }