2017-02-27 1 views
-1

私はこのような "秒" で増加タイマー表示したい:私が試したゼロから始まるMVVMを使用してWPFでタイマーを表示するにはどうすればよいですか?

0時00分01秒

午後12時○○分02秒

0時00分03秒

を派遣タイマーを使用していますが、唯一の01、02、03

private DispatcherTimer dispatcherTimer = null; 

public string TimerText 
    { 
     get 
     { 
      return this.timerText; 
     } 
     set 
     { 
      this.timerText = value; 
      OnPropertyChanged("TimerText"); 
     } 
    } 

dispatcherTimer = new DispatcherTimer(); 
dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick); 
dispatcherTimer.Interval = new TimeSpan(0, 0, 1); 
dispatcherTimer.Start(); 

    private void dispatcherTimer_Tick(object sender, EventArgs e) 
    { 
     TimerText = DateTime.Now.Second.ToString(); 
     CommandManager.InvalidateRequerySuggested(); 
    } 

よう秒で表示される私はDateTime.Now.Secondの一部を変更する必要があります知っているが、私はよく分かりません私が望むようにそれを得るために何が必要なのか。

P.S:これは実際に重複した質問であるかわかりません。しかし、私は以下のローマから正確なコードを得た。

+2

使用[のTimeSpan](https://msdn.microsoft.com/en-us/library/bb384267を( v = .110).aspx)。 – Jasen

+1

重複しているマークを参照してください。その答えに示されている 'mm'と' ss 'に加えて 'hh'を含めます。 –

+0

@PeterDuniho:「hh:mm:ss」を追加すると、実際に現在の時刻と増分が秒単位で表示されるため、重複しているとは限りません。私が望んでいたのは、以下のローマの回答でした。 – Abhi

答えて

1

private DispatcherTimer dispatcherTimer = null;後にフィールドを追加します。

private int _totalSecond = 0; 

をしてTickハンドラ変更:

private void dispatcherTimer_Tick(object sender, EventArgs e) 
{ 
    this._totalSeconds += 1; 
    TimerText = string.Format("{0:hh\\:mm\\:ss}", TimeSpan.FromSeconds(this._totalSeconds).Duration()); 
    CommandManager.InvalidateRequerySuggested(); 
} 
+0

ありがとう@ローマ、そのトリックをしました。 – Abhi

関連する問題