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

时间:2013-09-07 17:33:07

标签: c# wpf xaml

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

现在,我需要每隔1秒更新一次ObservableCollection DateTime中每个项目的时间,以便相应地更新UI。

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

1 个答案:

答案 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事件。