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;
}