我有一个树视图,需要根据每个节点的标记进行排序,并根据alpha beta进行排序。
例如:
我想对它进行排序,标记为A的节点将为第一个,然后是标记为B的节点。 但是,我希望包含标记A的节点从A到Z排序。
(订单= Node1,Node3,Node2 )
请帮帮我, 我该怎么办?
提前感谢!
答案 0 :(得分:2)
假设您正在讨论System.Windows.Forms.Treeview,您可以使用TreeViewNodeSorter和IComparer的实现来创建自定义排序策略。
http://msdn.microsoft.com/en-us/library/system.windows.forms.treeview.treeviewnodesorter.aspx
答案 1 :(得分: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);
}
}