Можно ли обновлять CollectionViewSource слишком часто?Возникают странные проблемы - PullRequest
1 голос
/ 05 января 2011

Эти ListViews привязаны к паре CollectionViewSources. Они, в свою очередь, связаны со списками ObservableCollection, которые содержат множество данных, которые обновляются довольно часто (он контролирует игровой сервер на 32 игрока и отображает метаданные и события игрока). Я бы никогда не вызвал Refresh () в представлении, если бы не явная необходимость убедиться, что он постоянно сортируется по Счету, и чтобы обновленные добавленные / удаленные игроки обновлялись в интерфейсе.

Теперь проблема, с которой я столкнулся, заключается в том, что слишком много обновлений в представлениях приведет к тому, что они потеряют возможность открывать контекстное меню. Вы можете щелкнуть правой кнопкой мыши все, что хотите, но оно не появится, пока вы не уничтожите форму и не создадите ее заново (недопустимый обходной путь).

Кто-нибудь когда-нибудь видел такое поведение и знает, как его обойти? Первоначально я обновлялся так часто, как это было необходимо - это вызывало проблему почти сразу. Я уменьшил эти Обновления каждые 5 секунд, и теперь это происходит, но не так часто.

1 Ответ

0 голосов
/ 05 января 2011

У нас было несколько проблем с CollectionViewSource.Это вызывает много проблем с производительностью после открытия того же окна для ок.5 раз.Возможно, это связано с тем, что мы использовали коллекцию LLBLGen в качестве источника элементов, но я никогда больше не буду использовать CollectionViewSource.

Теперь я не обновляю представление вручную.Ваша коллекция ObservableCollection отвечает за обновление данных.Попробуйте сейчас удалить CollectionViewSource (чтобы вы не потеряли возможность сортировки) и посмотрите, не возникла ли проблема.Если он исчезнет, ​​вам потребуется другой способ сортировки вашей коллекции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...