0
我正在使用WPF,XAML和C#來生成一個網格,該網格偵聽具有我想要相對顯示的日期字段的模型源。目前它與.ToString()
一起顯示,但我的實際問題是,我將如何在每秒中實現相對時間(或其活動格式)。是否有強制重新呈現用戶界面的首選方法,因爲數據不會始終保持不變(每秒只需重繪一個列,並調用相應的格式化方法)。將相對時間(「5秒前」)渲染到網格中並實時更新(WPF)?
我正在使用WPF,XAML和C#來生成一個網格,該網格偵聽具有我想要相對顯示的日期字段的模型源。目前它與.ToString()
一起顯示,但我的實際問題是,我將如何在每秒中實現相對時間(或其活動格式)。是否有強制重新呈現用戶界面的首選方法,因爲數據不會始終保持不變(每秒只需重繪一個列,並調用相應的格式化方法)。將相對時間(「5秒前」)渲染到網格中並實時更新(WPF)?
如果您綁定到視圖模型,那麼您可以每秒鐘更新一次屬性更改。
public class MyViewModel : ViewModelBase
{
private void OnTimerTick()
{
OnPropertyChanged("Date");
}
public string Date
{
get{ return DateTime.Now().AddSeconds(-5).ToString();
}
}
凡ViewModelBase實現INotifyPropertyChanged的和你使用的是DispatcherTimer提高計時器滴答事件。
嗯,目前它綁定到一個可觀察的集合,而集合是viewmodel的一個屬性。我應該改變我的方法嗎? – Tower 2012-03-14 12:45:34
因此,集合中的每個單獨項目都有一個時間屬性?如果是這樣,您可以遍歷集合引發每個項目的OnPropertyChange。 – Phil 2012-03-14 12:46:57