每分钟/每秒更新 UI 的最佳方式

本文关键字:最佳 方式 UI 更新 每分钟 | 更新日期: 2023-09-27 18:30:41

我有一个 ObservableCollection of DateTime 绑定到一个列表框。它显示各个国家/地区的当前时间。列表框有一个项模板,以便我可以格式化 HH:MM:SS 的显示方式。

现在,我需要每 1 秒更新一次 DateTime 的可观察集合中每个项目的时间,以便 UI 也相应地更新。

实现这一目标的最佳方法是什么?

每分钟/每秒更新 UI 的最佳方式

最先进(也是最简单的)方法是使用 Rx 扩展:

Observable.Timer(TimeSpan.Zero, TimeSpan.FromSeconds(1)).
Subscribe(o =>
{
   // every second set current time on every item. 
   foreach(var item in YourCollection)
   {
    item.CurrentTime = DateTime.Now;
   }
});

当然还有项目。当前时间设置器,您需要引发属性更改事件。