Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как вставить коллекцию Item в ListView??? 
:(
    Опции темы
STRELOKBMSTU
Дата 10.7.2008, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 138
Регистрация: 11.8.2007
Где: Russia.MR.Moscow( );

Репутация: нет
Всего: нет



Код


 ListView.ListViewItemCollection taskItems = new ListView.ListViewItemCollection(listView1);

            int i = 1;

            foreach (XmlNode x in root.ChildNodes)
            {
                string[] subItems = new string[4];
                subItems[0] = i.ToString();
                subItems[1] = x.Attributes["value"].Value;
                subItems[2] = x.Attributes["time"].Value;
                subItems[3] = x.Attributes["IsAccomplished"].Value;


                if (Convert.ToBoolean(subItems[3]))
                {
                    ListViewItem listViewItem = new ListViewItem(subItems, -1, Color.Empty, Color.LawnGreen, null);
                    taskItems.Add(listViewItem);
                }
                else
                {
                    ListViewItem listViewItem = new ListViewItem(subItems, -1, Color.Empty, Color.Coral, null);
                    taskItems.Add(listViewItem);
                }
                i++;
            }


            this.listView1.Items.AddRange(taskItems);




рисует такую ошибку: 


Код


System.ArgumentException  :

"Cannot add or insert the item '1' in more than one place. You must first remove it from its current location or clone it.\r\nParameter name: item"



SubItem'ы в коллекции все просматриваются: taskItems[i].SubItems[j].Text, число Columns у ListView = 4

В чем может быть дело?
PM MAIL ICQ Skype   Вверх
mihryak
Дата 10.7.2008, 18:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 731
Регистрация: 28.4.2007
Где: С-Пб

Репутация: 10
Всего: 36



код
Код

ListView.ListViewItemCollection taskItems = new ListView.ListViewItemCollection(listView1);

создаёт коллекцию item'ов, заполняя её текущими item'aми из listView1
далее ты делаешь
Код

this.listView1.Items.AddRange(taskItems);

что добавляет к уже существующим item'ам их же плюс новые
в этом и причина ошибки - один экземпляр ListViewItem не может присутствовать ни в одном другом ListView (в т.ч. - в том же второй раз)
либо коллекцию создавай изначально пустую (без текущих item'ов), либо придумывай что-то ещё
PM MAIL ICQ   Вверх
STRELOKBMSTU
Дата 11.7.2008, 09:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 138
Регистрация: 11.8.2007
Где: Russia.MR.Moscow( );

Репутация: нет
Всего: нет



Спасибо, чет действительно ступил с ListViewItemCollection) Все Item'ы  проинициализировал через listView1.Items.Add(listViewItem);

Это сообщение отредактировал(а) STRELOKBMSTU - 11.7.2008, 09:56
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0569 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.