我有一个ObservableCollection的DateTime绑定到列表框。它显示了各个国家的当前时间。列表框有一个itemtemplate,以便我可以格式化HH:MM:SS的显示方式。
现在,我需要每隔1秒更新一次ObservableCollection DateTime中每个项目的时间,以便相应地更新UI。
实现这一目标的最佳方法是什么?
答案 0 :(得分:2)
最先进(也是最简单)的方法是使用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 setter中你需要引发propertychange事件。