Обновить WPF Listview как обновления таблицы БД - PullRequest
0 голосов
/ 19 марта 2012

Я использую DispatcherTimer () для вызова функции обновления, чтобы обновить просмотр списка из базы данных, где данные обновляются где-то еще.Итак, просмотр списка используется как бы на приборной панели.

    private void Update(){
        DateTime d = DateTime.Today;
        items = (from i in DataManager.Entities.signals
                                where i.Date > d
                                orderby i.Id descending
                                select i).Take(MAX_NUM_OF_DISPLAYED);

        this.lvDashboard.ItemsSource = items;          
    }

Работает нормально, пока не достигнет определенного количества данных.Я знаю, что могу запросить последние обновленные данные в базе данных и добавить их в itemssource.Я пытаюсь сделать мой код простым и понятным.Не могли бы вы дать какие-либо идеи или предложения?

---------------- update ---

Обновляется каждые 1-2 секунды с 1000 строк данных, и окно данных продолжает двигатьсяк последним данным.По какой-то причине память процесса продолжает расти.Базы данных мониторов DataTable обновляются ??Если БД обновляется в некоторых других местах, обновляется ли сама БД с привязкой к DataTable?

Ответы [ 2 ]

0 голосов
/ 19 марта 2012

Если вы связываетесь с DataView (лежащим в основе DataTable, указывающим на таблицу базы данных), Commit, выполненное на DataTable, автоматически обновит DataView, и GUI покажет его.Но когда что-то, кроме вашего кода, обновляет таблицу, и вам нужно, чтобы она обновлялась в графическом интерфейсе, для этого вы можете рассмотреть некоторую модель издатель-подписчик.

0 голосов
/ 19 марта 2012

Было бы больше работы, но если бы только подмножество изменений данных сделало бы элементы ObservableCollection и добавляло и удаляло элементы. И НЕ связывай.

...