0

我正在使用 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。我试图让我的代码简单明了。你能给出任何想法或建议吗?

- - - - - - - - 更新 - -

它每 1-2 秒更新 1000 行数据,并且数据窗口不断移动到最近的数据。进程内存不断增长的某些原因。DataTable 是否监控数据库更新?如果数据库在其他地方更新,数据库绑定的 DataTable 是否会自行更新?

4

2 回答 2

0

如果您绑定到DataViewDataTable指向数据库表的基础),则Commit完成DataTableDataView自动刷新并且 GUI 将显示它。但是,当您的代码以外的内容更新表并且您需要在 GUI 上看到它的更新时,您可能需要考虑一些发布者-订阅者模型。

于 2012-03-19T13:40:42.980 回答
0

这将是更多的工作,但如果只有一部分数据更改然后将项目设为 ObservableCollection 并添加和删除项目。并且不要重新绑定。

于 2012-03-19T13:25:30.393 回答