我有一个 DateTime 的 ObservableCollection 绑定到一个列表框。它显示了各个国家/地区的当前时间。列表框有一个项目模板,以便我可以格式化 HH:MM:SS 的显示方式。
现在,我需要每 1 秒更新一次 DateTime 的 ObservableCollection 中每个项目的时间,以便 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;
}
});
当然,在 item.CurrentTime 设置器中,您需要引发 propertychange 事件。