Гость
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как правильно обновить DataGridView из другого потока. / 9 сообщений из 9, страница 1 из 1
26.06.2016, 06:56
    #39262473
sergiy_s
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно обновить DataGridView из другого потока.
Есть ObservableCollection<> обновляемая из другого потока
Её надо сбиндить с DataGridView.
Я могу подписаться на событие CollectionChanged
и сделать что то подобное в основном потоке
Код: c#
1.
2.
3.
 _dataGridView.DataSource = null;
                _dataGridView.DataSource = _itemsSource;
                _dataGridView.Refresh();


было бы не плохо если бы изменилось все содержимое.
Но на практике идет чтение большой коллекции и добавляется очередная порция строк.
и нужно только сказать гриду--> добавь мол чуть строк.
Можно наверное доработать коллекцию что бы она наследовала еще и интерфейс IBindingSource.
Но как то ... слишком сложно.


Неужели нет какого ли бо стандартного решения?
...
Рейтинг: 0 / 0
26.06.2016, 10:09
    #39262491
Cat2
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно обновить DataGridView из другого потока.
sergiy_sбыло бы не плохо если бы изменилось все содержимое.
Так сделайте в начале _dataGridView.Rows.Clear()
...
Рейтинг: 0 / 0
26.06.2016, 15:21
    #39262536
sergiy_s
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно обновить DataGridView из другого потока.
Если надо обновить все содержимое, то это частный случай и для такого случая все удовлетворительно.
А вот если начитано несколько десятков тысяч строк и насчитывается еще одна строка которая возможно вне видимости.
Полное обновление DataSource в таком случае довольно дорогое удовольствие. (не говоря уш о том слетят выделенные строки)
...
Рейтинг: 0 / 0
26.06.2016, 15:38
    #39262539
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно обновить DataGridView из другого потока.
sergiy_sА вот если начитано несколько десятков тысяч строкЗачем?
...
Рейтинг: 0 / 0
26.06.2016, 17:30
    #39262579
sergiy_s
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно обновить DataGridView из другого потока.
Какая разница зачем.
НУ ПУСТЬ БУДЕТ 20 СТРОК КОТОРЫЕ ПОМЕЩАЮТСЯ НА ЭКРАН.
...
Рейтинг: 0 / 0
26.06.2016, 17:36
    #39262580
sergiy_s
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно обновить DataGridView из другого потока.
Зачем обновлять все строки когда можно дорисовать одну.
Вопрос как это сделать в WindowsForms.
В WPF показывается столько строк сколько в коллекции и если коллекция обновляется то обновляется и грид.
При чем перерисовываютсятся только нужные строки.
Неужели нельзя добиться такого же поведения для DataGridView.
...
Рейтинг: 0 / 0
26.06.2016, 18:19
    #39262592
Cat2
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно обновить DataGridView из другого потока.
sergiy_s,

Сделайте источником DataTable, добаляйте в неe DataRow и все будет так, как Вам хочется
...
Рейтинг: 0 / 0
26.06.2016, 20:05
    #39262605
sergiy_s
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно обновить DataGridView из другого потока.
то бишь вместо BindingSource использовать DataTable ?
...
Рейтинг: 0 / 0
26.06.2016, 22:24
    #39262634
Cat2
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно обновить DataGridView из другого потока.
sergiy_sто бишь вместо BindingSource использовать DataTable ?
Нет. DataTable через BindingSource
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как правильно обновить DataGridView из другого потока. / 9 сообщений из 9, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]