2012-03-14 56 views
0

我正在使用WPF,XAML和C#來生成一個網格,該網格偵聽具有我想要相對顯示的日期字段的模型源。目前它與.ToString()一起顯示,但我的實際問題是,我將如何在每秒中實現相對時間(或其活動格式)。是否有強制重新呈現用戶界面的首選方法,因爲數據不會始終保持不變(每秒只需重繪一個列,並調用相應的格式化方法)。將相對時間(「5秒前」)渲染到網格中並實時更新(WPF)?

回答

1

如果您綁定到視圖模型,那麼您可以每秒鐘更新一次屬性更改。

public class MyViewModel : ViewModelBase 
    { 
     private void OnTimerTick() 
     { 
      OnPropertyChanged("Date"); 
     } 

     public string Date 
     { 
      get{ return DateTime.Now().AddSeconds(-5).ToString(); 
     } 
    } 

凡ViewModelBase實現INotifyPropertyChanged的和你使用的是DispatcherTimer提高計時器滴答事件。

+0

嗯,目前它綁定到一個可觀察的集合,而集合是viewmodel的一個屬性。我應該改變我的方法嗎? – Tower 2012-03-14 12:45:34

+0

因此,集合中的每個單獨項目都有一個時間屬性?如果是這樣,您可以遍歷集合引發每個項目的OnPropertyChange。 – Phil 2012-03-14 12:46:57