Сортировка Treeview - C#
Формулировка задачи:
Всем привет. Есть Treeview, в котором есть след. узлы:
1. текст1
2. текст2
3. текст3
...
9. текст9
10. текст10
11. текст11
так вот. Я хочу, чтобы он их сортировал именно так, как я указал выше.
а сейчас он сортирует так (через treeview1.sort()):
1. текст1
10. текст10
11. текст11
2. текст2
3. текст3
...
9. текст9
куда копать, подскажите, пожалуйста)
спасибо
Решение задачи: «Сортировка Treeview»
textual
Листинг программы
// treeView1.Sort();
treeView1.TreeViewNodeSorter = new MySortClass();
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
public class MySortClass : IComparer
{
public int Compare(object _left, object _right)
{
TreeNode left = _left as TreeNode;
TreeNode right = _right as TreeNode;
int leftNumber = 0;
int rightNumber = 0;
System.Text.RegularExpressions.Regex leftRegex = new System.Text.RegularExpressions.Regex(@"\d+");
System.Text.RegularExpressions.Match leftMatch = leftRegex.Match(left.Text);
System.Text.RegularExpressions.Regex rightRegex = new System.Text.RegularExpressions.Regex(@"\d+");
System.Text.RegularExpressions.Match rightMatch = leftRegex.Match(right.Text);
if (leftMatch.Success && rightMatch.Success)
{
leftNumber = Convert.ToInt32(leftMatch.Value);
rightNumber = Convert.ToInt32(rightMatch.Value);
if (leftNumber != rightNumber)
return leftNumber - rightNumber;
return 0;
}
return 0;
}
}