Поддержание GridView в актуальном состоянии в WPF - PullRequest
0 голосов
/ 26 апреля 2011

Я - разработчик .Net, переходя с Winforms на WPF, и столкнулся с общей проблемой, в которой я хотел бы найти конкретное решение для WPF. У меня есть GridView, который в основном связан с таблицей в SQL. Я использую MVVM, так что это делается косвенно, когда GridView фактически привязан к ViewModel, который получает свои данные из Entity Model. В Winforms, чтобы сохранить синхронизацию в реальном времени, у меня будет фоновый поток, который будет часто искать обновление и получать последнюю версию данных таблицы SQL. Конечно, я мог бы сделать это в WPF, но мне было интересно, есть ли лучший способ сделать это в WPF, где пользовательский интерфейс может действительно обновляться в режиме реального времени по мере обновления таблицы. Приложение будет на многих компьютерах, поэтому я не могу просто получить обновление, когда локальный пользователь каким-то образом изменяет данные через приложение. Кнопки обновления ужасны, поэтому я тоже этого не хочу. Есть ли лучшая практика для этого в WPF?

Ответы [ 2 ]

2 голосов
/ 26 апреля 2011

Методология опроса все еще здорова.Что касается «лучшего» способа, то есть способы настройки уведомлений (например, уведомление об изменении запроса) в ADO.NET с SQL 2005 или новее.Однако это не конкретная реализация WPF, и ее можно применять к формам Windows.

1 голос
/ 26 апреля 2011

tbh, я бы сделал это довольно похоже, то есть фоновый поток, который опрашивает, а затем обновляет связанную коллекцию. Если вам нужна двусторонняя связь, вы можете сделать это, чтобы избежать опроса, но это создает свои проблемы и не имеет никакого отношения к WPF. Несколько вещей, которые нужно учитывать:

  • Используйте ObservableCollection в качестве ItemsSource. Таким образом, вы можете вводить «дельты» того, что изменилось, что должно поддерживать минимальное взаимодействие с сервером.
  • Используйте Dispatcher.Invoke при изменении ObservableCollection из фона, в противном случае ... вы знаете проблемы из WinForms.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...