Re[2]: Tree View: эффективно переподчинить узел (поменять ро
От: voiger Украина  
Дата: 15.12.07 06:57
Оценка:
Здравствуйте, _FRED_, Вы писали:

_FR>Здравствуйте, voiger, Вы писали:


V>>Есть следующая проблема.

V>>Пробема в том, что если делать такую группировку, клонируя узлы, добавляя их в группирующий узел, и удаляя из корня дерева, получается очень медленно.

_FR>
_FR>TreeView.BeginUpdate();
_FR>try {
_FR>  // Перестановки
_FR>} finally {
_FR>  TreeView.EndUpdate();
_FR>}//try
_FR>

_FR>здесь

Спасибо, помогло Думал, если TreeView.Visible == false, то BeginUpdate()/EndUpdate() и необязательно вызывать . А получается вот что:

/*было*/
TreeNode.Remove() 3467 msec
TreeNode.Clone() 495 msec

/*стало*/
TreeNode.Remove() 2162 msec
TreeNode.Clone() 450 msec


Это на тестовом примере небольшого размера.

Но вопрос остаётся открытым. Clone()-то копирует полностью весь узел со всеми полями и потомками, а почему Remove() так долго работает — вообще загадка. Можно как-то TreeNode.Parent() поменять?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.