2

我有一个树视图,需要根据每个节点的标签以及 alpha beta 进行排序。

例如:

  • 节点 1,标签 = A,文本 =苹果
  • 节点2,标签= B,文本=气球
  • Node3,标签= A,文本=帮助

我想对它进行排序,带有标签 A 的节点将是第一个,然后是带有标签 B 的节点。但是,我希望包含标签 A 的节点从 A 到 Z 排序。

(顺序 = Node1,Node3,Node2

请帮助我,我该怎么做?

提前致谢!

4

2 回答 2

2

假设您正在谈论 System.Windows.Forms.Treeview,您可以使用 TreeViewNodeSorter 和 IComparer 的实现来创建自定义排序策略。

http://msdn.microsoft.com/en-us/library/system.windows.forms.treeview.treeviewnodesorter.aspx

于 2011-06-21T21:12:18.257 回答
0

谢谢!我是这样做的:

 /// <summary>
        ///  Create a node sorter that implements the IComparer interface.
       /// </summary>
        public class NodeSorter : IComparer
        {
            // compare between two tree nodes
            public int Compare(object thisObj, object otherObj)
            {
                TreeNode thisNode = thisObj as TreeNode;
                TreeNode otherNode = otherObj as TreeNode;

                // Compare the types of the tags, returning the difference.
                if (thisNode.Tag is  first_type&& otherNode.Tag is another_type)
                    return 1;
                 //alphabetically sorting
                return thisNode.Text.CompareTo(otherNode.Text);
            }
        } 
于 2011-06-22T08:52:09.193 回答