@hurgadan

При частом обновлении контрола окна приложения, окно тормозит. Как избавится?

Есть приложение WPF состоящее из одного окна, в котором есть DataGrid. В классе окна приложения есть метод, который обновляет содержимое DataGrid. Обновления происходят часто, до нескольких раз в секунду. Так как окно приложения и его контролы работает в одном потоке, то наблюдаются тормоза. Окно плохо, откликается, плохо перетаскивается по рабочему столу и так далее ... Почему это происходит - понятно. Не понятно как от этого избавится. Что можно с этим сделать?
Спасибо.
  • Вопрос задан
  • 374 просмотра
Решения вопроса 2
@Sumor
Я делал примерно так:
BindingList (или ObservalCollection) хранит коллекцию того, что нужно показывать в DataGrid. Она один раз привязывается при запуске формы к ItemsSource.
Процедура обновления получает обновлённый список и сравнивает его с тем, который отображается в DataGrid. Там три варианта - удалилось, добавилось, обновилось. Все три части аккуратно и несложно описываются. Меняется именно ваша коллекция. Автоматически у неё срабатывают события изменения, и изменения сразу отображаются в DataGrid, так как он умеет правильно работать и с BindingList и с ObservalCollection.
Ответ написан
Neuroware
@Neuroware
Программист в свободное от работы время
скорее всего неправильно построена архитектура приложения, в частности вам скорее всего не нужен грид совсем или в нем не должно быть столько данных и частого обновления.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы