数据库表更新时更新WPF Listview
本文关键字:更新 Listview WPF 数据库 | 更新日期: 2023-09-27 18:28:19
我正在使用DispatcherTime()调用update函数来从其他地方更新数据的数据库更新列表视图。因此,使用列表视图就像使用仪表板一样。
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;
}
它工作良好,直到达到一定的数据量。我知道我可以查询数据库中最近更新的数据,并将其添加到项目源中。我正在努力使我的代码简单明了。你能提出一些想法或建议吗?
----------------更新---
它每1-2秒更新1000行数据,数据窗口不断移动到最近的数据。由于某种原因,进程内存不断增长。DataTable是否监视数据库更新??如果DB在其他地方更新,那么DB绑定的DataTable会更新自己吗?
这将是更多的工作,但如果只有数据的一个子集发生更改,则将项设为ObservableCollection并添加和删除项。并且不要重新绑定。
如果您绑定到DataView
(指向数据库表的底层DataTable
),则在DataTable
上完成的Commit
将自动刷新DataView
,GUI将显示它。但是,当您的代码之外的其他内容更新表时,您需要在GUI上看到它的更新,为此,您可能需要考虑一些发布者-订阅者模型。