100分:treeview中同级节点排序问题??
我现在有一个treeview的树形结构,假如他有name列,order列
例如:
Name Order
|root0
|a 1
|b 2
|c 3
|d 1
|e 2
|f 3
|g 1
|h 2
|e 3 就是按照这样排序,还请高手指教??
------解决方案--------------------先在内存排序,再添加节点到TreeView
------解决方案--------------------
private void Form1_Load(object sender, EventArgs e)
{
SortTree(treeView1.Nodes);
}
public void SortTree(TreeNodeCollection p_Node)
{
SortComparer _NodeSort = new SortComparer();
TreeNode[] _Node = new TreeNode[p_Node.Count];
for (int i = 0; i != p_Node.Count; i++)
{
_Node[i] = p_Node[i];
SortTree(_Node[i].Nodes);
}
Array.Sort(_Node, _NodeSort);
p_Node.Clear();
for (int i = 0; i != _Node.Length; i++)
{
p_Node.Add(_Node[i]);
}
}
public class SortComparer : IComparer
{
int IComparer.Compare(Object x, Object y)
{
TreeNode _XNode = (TreeNode)x;
TreeNode _YNode = (TreeNode)y;
//这里取你的 Order 进行比较排序
return string.Compare(_XNode.Name, _YNode.Name);
}
}
------解决方案--------------------6楼的不错
楼主也可以在绑定前先排序好。
------解决方案--------------------不错,绑定前先排序
------解决方案--------------------使用绑定方法的话,可以对绑定源进行排序的……排完序后对树进行一次刷新就完了。
------解决方案--------------------支持6楼