基础设施选定节点
Infragistics Selected Node
想知道是我的错误还是遇到了bug。
我有一个包含 parents 和 children 的网格。我制作了按钮来将节点从上到下和向后移动。这有效,但第一个选定的节点保持选定状态。可以根据需要移动应移动的节点。为什么还是显示第一个选中的节点?[=13=]
private void IDC_ARROW_UP_Click(object sender, System.EventArgs e)
{
foreach (Infragistics.Win.UltraWinTree.UltraTreeNode Node in this.uTreeMenue.SelectedNodes)
{
Node.Reposition(Node, Infragistics.Win.UltraWinTree.NodePosition.Previous);
Node.Selected = true;
}
}
选择的节点如下图:
---编辑:
private void IDC_ARROW_UP_Click(object sender, System.EventArgs e)
{
var NodeSelected = uTreeMenue.SelectedNodes;
var NodeCount = NodeSelected.Count;
NodeSelected.SortByPosition();
if (NodeCount > 0 && NodeSelected[0].PrevVisibleNode is Infragistics.Win.UltraWinTree.UltraTreeNode Node)
Node.Reposition(NodeSelected[NodeCount - 1], Infragistics.Win.UltraWinTree.NodePosition.Next);
}
--- Down_Click_Method
相同
试试下面的代码:
private void IDC_ARROW_UP_Click(object sender, System.EventArgs e)
{
var selected = uTreeMenue.SelectedNodes;
selected.SortByPosition();
var cnt = selected.Count;
if (cnt > 0 && selected[0].PrevVisibleNode is UltraTreeNode node)
{
node.Reposition(selected[cnt - 1], Infragistics.Win.UltraWinTree.NodePosition.Next);
}
}
上面代码实现的逻辑非常简单。而不是将所有选定的节点(例如下图中的 Canada…France
)向上移动到位于所有选定项目之前的第一个节点,在所有选定项目之后向下移动:
因此,在将所有选定项目之前的节点向下移动后(在测试示例中,这是 Brazil
项目),UltraTree
控件将看起来如下所示:
要正确确定所选项目的限制,应使用 SortByPosition()
方法对它们进行排序,该方法对 SelectedNodes
集合进行排序,使成员的出现顺序与它们在树中的顺序相同.
想知道是我的错误还是遇到了bug。
我有一个包含 parents 和 children 的网格。我制作了按钮来将节点从上到下和向后移动。这有效,但第一个选定的节点保持选定状态。可以根据需要移动应移动的节点。为什么还是显示第一个选中的节点?[=13=]
private void IDC_ARROW_UP_Click(object sender, System.EventArgs e)
{
foreach (Infragistics.Win.UltraWinTree.UltraTreeNode Node in this.uTreeMenue.SelectedNodes)
{
Node.Reposition(Node, Infragistics.Win.UltraWinTree.NodePosition.Previous);
Node.Selected = true;
}
}
选择的节点如下图:
---编辑:
private void IDC_ARROW_UP_Click(object sender, System.EventArgs e)
{
var NodeSelected = uTreeMenue.SelectedNodes;
var NodeCount = NodeSelected.Count;
NodeSelected.SortByPosition();
if (NodeCount > 0 && NodeSelected[0].PrevVisibleNode is Infragistics.Win.UltraWinTree.UltraTreeNode Node)
Node.Reposition(NodeSelected[NodeCount - 1], Infragistics.Win.UltraWinTree.NodePosition.Next);
}
--- Down_Click_Method
相同试试下面的代码:
private void IDC_ARROW_UP_Click(object sender, System.EventArgs e)
{
var selected = uTreeMenue.SelectedNodes;
selected.SortByPosition();
var cnt = selected.Count;
if (cnt > 0 && selected[0].PrevVisibleNode is UltraTreeNode node)
{
node.Reposition(selected[cnt - 1], Infragistics.Win.UltraWinTree.NodePosition.Next);
}
}
上面代码实现的逻辑非常简单。而不是将所有选定的节点(例如下图中的 Canada…France
)向上移动到位于所有选定项目之前的第一个节点,在所有选定项目之后向下移动:
因此,在将所有选定项目之前的节点向下移动后(在测试示例中,这是 Brazil
项目),UltraTree
控件将看起来如下所示:
要正确确定所选项目的限制,应使用 SortByPosition()
方法对它们进行排序,该方法对 SelectedNodes
集合进行排序,使成员的出现顺序与它们在树中的顺序相同.