通过比较其标记属性对树视图节点进行排序

时间:2011-12-09 08:32:59

标签: c# winforms treeview treenode

我写了一个比较器,我想在TreeView的父节点上实现它,但我需要比较的是Node.Tag.ToString()而不是Text。据我所知,使用TreeView.Sort()没有重载或其他功能。

我想知道你是否有办法或解决方法?

1 个答案:

答案 0 :(得分:4)

如果您有IComparer,看起来您可以为其设置TreeViewNodeSorter属性,然后调用Sort以根据需要对节点进行排序。

基于该链接的示例 - 未尝试过,没有空检查等但它应该有效:

public class NodeSorter : IComparer
{
    public int Compare(object x, object y)
    {
        TreeNode tx = x as TreeNode;
        TreeNode ty = y as TreeNode;
        return string.Compare(tx.Tag.ToString(), ty.Tag.ToString());
    }
}

然后在您的设置中的某个地方treeView1.TreeViewNodeSorter = new NodeSorter();