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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> DataGridView, заполнение 
:(
    Опции темы
leopard678
Дата 9.11.2006, 10:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Как быстро заполнить DataGridView ?

Сейчас делаю:
dataGridView.Rows.Add(..., ..., ..., ...);

для 5000 строк получается медленно  smile 
PM MAIL   Вверх
ivashkanet
Дата 9.11.2006, 10:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

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



leopard678, а где их берешь?
Если из датасета или  какой-либо коллекции, то можно напрямую использовать свойства:
dataGridView.DataSource и  dataGridView.DataMember
PM MAIL WWW ICQ   Вверх
leopard678
Дата 9.11.2006, 10:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



я их беру из своего класса списка на динамических структурах...
PM MAIL   Вверх
ivashkanet
Дата 9.11.2006, 11:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

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



leopard678, список поддерживает ICollection (вроде он)? "Динамические структуры" ( чё за зверь такой smile ) имеют свойства (те что property с get и set)?

PM MAIL WWW ICQ   Вверх
leopard678
Дата 9.11.2006, 11:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



"Динамические структуры" - когда элементы имеют ссылки на предыдущий и следуюший.

Поддерживает IList:

 public class CList<ItemType> : IList<ItemType>
PM MAIL   Вверх
ivashkanet
Дата 9.11.2006, 11:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

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



Лови пример:  
50000 строк добавляются почти мгновенно  smile

Код

        private class Person
        {
            private string _name;
            public string Name
            {
                get { return _name; }
                set { _name = value; }
            }
            private string _surname;

            public string Surname
            {
                get { return _surname; }
                set { _surname = value; }
            }

            public Person(string name,string surname)
            {
                _name = name;
                _surname = surname;
            }
        }

        private List<Person> _personCollection;

        private void button1_Click(object sender, EventArgs e)
        {
            _personCollection = new List<Person>();

            Person p;
            for (int i = 0; i < 50000; i++)
            {
                p=new Person(i.ToString(),i.ToString());
                _personCollection.Add(p);
            }

            dataGridView1.DataSource = this._personCollection;
            dataGridView1.AutoGenerateColumns = true;
        }


Если что будет непонятно --- спрашивай  smile 
PM MAIL WWW ICQ   Вверх
leopard678
Дата 9.11.2006, 12:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



сделал так через  private List<Person>

У меня добавились колонки с именами свойств из Person и ниодной строки.

в List<Person> записи есть...

Добавлено @ 12:25 
мне не нужно добавлять новые колонки, я хочу писать в созданные заранее...

и в один из столбцов я записываю ссылку на Person
PM MAIL   Вверх
ivashkanet
Дата 9.11.2006, 12:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

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



Странно, у меня ведь все работает  smile 

Лови мой проект

Добавлено @ 12:32 
Цитата(leopard678 @  9.11.2006,  11:14 Найти цитируемый пост)
мне не нужно добавлять новые колонки, я хочу писать в созданные заранее...

и в один из столбцов я записываю ссылку на Person 

Блин, а почему сразу не сказал  smile  smile  smile 

Вот что нагенерил дизайнер
Код


            // 
            // Column1
            // 
            this.Column1.DataPropertyName = "Name";
            this.Column1.HeaderText = "Column1";
            this.Column1.Name = "Column1";
            // 
            // Column2
            // 
            this.Column2.DataPropertyName = "Surname";
            this.Column2.HeaderText = "Column2";
            this.Column2.Name = "Column2";

Т.е. Самое главное, это установить у колонки свойство DataPropertyName в имя пропертя, которое будет в нем отображаться

Присоединённый файл ( Кол-во скачиваний: 12 )
Присоединённый файл  Test_wa_cs.zip 19,88 Kb
PM MAIL WWW ICQ   Вверх
leopard678
Дата 9.11.2006, 12:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



твой проект выдал:
Error    1    Unable to resolve type 'DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v6.1, Version=6.1.5.0, Culture=neutral, PublicKeyToken=79868b8147b5eae4'    C:\Visual Studio 2005\Projects\Test_wa_cs\Test_wa_cs\Properties\licenses.licx    1    Test_wa_cs

Добавлено @ 12:43 
У тебя строки появляются, а у меня нет....

Добавлено @ 12:52 
мне нужно вывести в таблицу не все свойства  Person...
PM MAIL   Вверх
leopard678
Дата 9.11.2006, 13:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Спасибо
PM MAIL   Вверх
ivashkanet
Дата 9.11.2006, 13:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

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



Цитата(leopard678 @  9.11.2006,  11:41 Найти цитируемый пост)
Error    1    Unable to resolve type 'DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v6.1, Version=6.1.5.0, Culture=neutral, PublicKeyToken=79868b8147b5eae4'    C:\Visual Studio 2005\Projects\Test_wa_cs\Test_wa_cs\Properties\licenses.licx    1    Test_wa_cs

Так удалил бы референс на него smile
Этот проект --- свалка всевозможных тестов smile Но я вроде все удалил  smile 

Цитата(leopard678 @  9.11.2006,  12:44 Найти цитируемый пост)
Спасибо 

Не за что smile
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

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


 




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


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

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