Сортировка узлов TreeView путем сравнения свойств их тегов - PullRequest
2 голосов
/ 09 декабря 2011

Я написал компаратор и я хочу реализовать его на родительских узлах TreeView, но мне нужно сравнить это Node.Tag.ToString(), а не их Text. Насколько я посмотрел, нет перегрузки или другой функции для этого, используя TreeView.Sort().

Интересно, есть ли у вас способ или обходной путь?

1 Ответ

4 голосов
/ 09 декабря 2011

Если у вас есть 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(); где-то в вашей настройке.

...