我有一个树视图,需要根据每个节点的标签以及 alpha beta 进行排序。
例如:
- 节点 1,标签 = A,文本 =苹果
- 节点2,标签= B,文本=气球
- Node3,标签= A,文本=帮助
我想对它进行排序,带有标签 A 的节点将是第一个,然后是带有标签 B 的节点。但是,我希望包含标签 A 的节点从 A 到 Z 排序。
(顺序 = Node1,Node3,Node2)
请帮助我,我该怎么做?
提前致谢!
我有一个树视图,需要根据每个节点的标签以及 alpha beta 进行排序。
例如:
我想对它进行排序,带有标签 A 的节点将是第一个,然后是带有标签 B 的节点。但是,我希望包含标签 A 的节点从 A 到 Z 排序。
(顺序 = Node1,Node3,Node2)
请帮助我,我该怎么做?
提前致谢!
假设您正在谈论 System.Windows.Forms.Treeview,您可以使用 TreeViewNodeSorter 和 IComparer 的实现来创建自定义排序策略。
http://msdn.microsoft.com/en-us/library/system.windows.forms.treeview.treeviewnodesorter.aspx
谢谢!我是这样做的:
/// <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);
}
}