У меня очень сложный интерфейс с постоянно меняющейся строкой состояния с несколькими типами сообщений о состоянии и пользовательским интерфейсом, имеющим сложный контроль диаграммы и загружаемую ориентировочную географическую карту.Массовые обновления в сложном интерфейсе
Теперь контекст данных этих небольших, но сложных областей имеет одинаково сложные ViewModels, такие как StatusBarVM, ChartingVM, GeoMapVM и т. Д. Они реализуют INotifyPropertyChanged и ObservableCollections.
Расчет моих обновлений Я вижу, что у меня около 5000 элементов пользовательского интерфейса (lables, progressbars, points data points, bgcolorsbrushes и т. Д.), Которые меняются с быстрой скоростью 1000 обновлений элементов данных в секунду.
Каков наилучший способ добиться этого массового обновления данных в интерфейсе WPF?
Является ли модель привязки WPF способной к таким огромным обновлениям? Если да, то как? Потому что я вижу, что это не оптимально в моем случае. Я также использую bgworker (для progressbars) и используя DIspatcher BeginInvoke ... но дело в том, что даже тогда обновления зависают в потоке пользовательского интерфейса, поскольку сообщения диспетчера становятся в очереди, ожидая завершения.
Я не могу реализовать виртуализацию, так как статусы в реальном времени, и я должен видеть их все в интерфейсе пользователя передо мной .. Я не могу позволить себе пропустить их даже на пару секунд (например, географические данные, ,
Пожалуйста, помогите мне определить правильный инструмент или каким-то образом достичь сложного, но высокочувствительного интерфейса WPF. Это Dispatcher.PushFrame()?
Это похоже на хорошую реализацию, хотя я должен спросить об обновлениях на основе буферов (для других технологий пользовательского интерфейса, таких как ASP.NET, WinForms и т. Д.), То же самое, что вы обсуждали здесь? –
Я не уверен, термин «обновления на основе буферизированных пользовательских интерфейсов» не является тем, который я признаю. – Bevan
Вы должны использовать эту фреймворк для пакетной загрузки обновлений: [Reactive Extensions] (https://rx.codeplex.com/), см. Буфер детали со временем. – Thomas