Загрузка данных в ListView
От: ShulapovMax Россия http://HrExpress.ru/
Дата: 13.02.03 13:25
Оценка:
можно ли как-то отключить сортировку при добавлении одного Item
( у меня загружается большая таблица, без сортировки 3 сек, с сортировкой 3 мин, как я понимаю при добавлении КАЖДОГО элемента в цикле сортируется список полностью)
Одинаковые ошибки необязательно делать каждый раз, достаточно сделать одну, а затем обращаться к ней по мере необходимости из любого места программы.
Re: Загрузка данных в ListView
От: Юнусов Булат Россия  
Дата: 13.02.03 14:07
Оценка:
Здравствуйте, ShulapovMax, Вы писали:

поиск WM_SETREDRAW
Re: Загрузка данных в ListView
От: der Igel Россия  
Дата: 13.02.03 15:04
Оценка: 7 (1)
Hello, ShulapovMax!

S> можно ли как-то отключить сортировку при добавлении одного Item

S> ( у меня загружается большая таблица, без сортировки 3 сек, с сортировкой
S> 3 мин, как я понимаю при добавлении КАЖДОГО элемента в цикле сортируется
S> список полностью)

listView.BeginUpdate();
.....
.....
listView.EndUpdate();
Posted via RSDN NNTP Server 1.4.5
Re[2]: Загрузка данных в ListView
От: ShulapovMax Россия http://HrExpress.ru/
Дата: 14.02.03 07:06
Оценка:
Здравствуйте, der Igel, Вы писали:


S>> можно ли как-то отключить сортировку при добавлении одного Item

S>> ( у меня загружается большая таблица, без сортировки 3 сек, с сортировкой
S>> 3 мин, как я понимаю при добавлении КАЖДОГО элемента в цикле сортируется
S>> список полностью)

DI>
DI>listView.BeginUpdate();
DI>.....
DI>.....
DI>listView.EndUpdate();
DI>



вот мой код, к сожалению Begin/End Update не работает

ListView rv, DataTable dt
{
rv.BeginUpdate();
rv.SuspendLayout();
rv.SortingEnabled = false;
rv.SortOrder = SortOrder.None;

rv.Items.Clear();
rv.Columns.Clear();
foreach(DataColumn col in dt.Columns)
rv.Columns.Add( col.ColumnName, 100, HorizontalAlignment.Left);

foreach (DataRow dr in dt.Rows)
{
ListViewItem lvi;
//добавление к LIstView
}

rv.SortingEnabled = true;
rv.ResumeLayout();
rv.EndUpdate();
Одинаковые ошибки необязательно делать каждый раз, достаточно сделать одну, а затем обращаться к ней по мере необходимости из любого места программы.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.