2012-03-14 7 views
0

WPF、XAML、およびC#を使用して、相対的に表示したい日付フィールドを持つモデルのソースをリッスンするグリッドを作成しています。現在は.ToString()と表示されていますが、私の実際の質問は、毎秒可能な相対的なタイミング(またはアクティブなフォーマット)をどのように実装するのかということです。 UIの再レンダリングを強制的に実行する方法がいくつかあります。これは、データが常に同じ状態を維持するためです(1秒に1列だけ再描画し、対応する書式設定メソッドを呼び出す必要があります)。相対時間( "5秒前")としてグリッドに日付を描画し、それをリアルタイムで更新する(WPF)?

答えて

1

ビューモデルにバインドする場合は、毎秒プロパティの変更を上げることができます。 ViewModelBaseはを実装

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

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

INotifyPropertyChangedの、あなたはタイマーティックイベントを発生させるDispatcherTimerを使用しています。

+0

現在、それは観測可能なコレクションにバインドされており、コレクションはビューモデルのプロパティです。私のアプローチを変えるべきですか? – Tower

+0

コレクション内の個々のアイテムにはタイムプロパティがありますか?そうであれば、各アイテムのOnPropertyChangeを集めるコレクションを反復することができます。 – Phil

関連する問題