2017-07-05 1 views
1

System.Timers.TimerのEnabledプロパティにチェックボックスをバインドすることは可能ですか?Timer.Enabledにバインドするチェックボックス

私はこのように、その状態を返すブール型プロパティでそれをラップすることができます:

public bool TimerEnabled 
    { 
     get { return _timer.Enabled; } 
     set 
     { 
      _timer.Enabled = value; 
      InvokePropertyChanged(new PropertyChangedEventArgs("TimerEnabled")); 
     } 
    } 

しかし、偽_timer.Autoreset =と_timer.Enabledが値を変更するとき、私は通知されません。

タイマーの現在の状態を示すチェックボックス(「EnabledCheckbox」)が必要です。ユーザーはそれを有効または無効にできます。さらに、このタイマーがAutoresetプロパティを有効にしていることを制御する別のチェックボックス( "AutoResetCheckbox")が必要です。最後に、Autoresetが無効になり、タイマーがElapsedイベントをトリガーしてEnabledをfalseに設定した場合は、「EnabledCheckbox」を独自にオフにします。

どうすればよいですか?

編集:自分でオートリセットを実装できますが、より良い方法がありますか?そのようなプロパティに

答えて

0

ラップ_timer.Autoresetは:

public bool Autoreset 
{ 
    get { return _timer.Autoreset; } 
    set 
    { 
     _timer.Autoreset = value; 
     InvokePropertyChanged(new PropertyChangedEventArgs(nameof(TimerEnabled)); 
     InvokePropertyChanged(new PropertyChangedEventArgs(nameof(Autoreset)); 
    } 
} 

そして代わりに_timer.Autoresetのプロパティで動作します。

+0

これは私の問題を解決しません。プログラムで変更するとトリガされますが、falseに設定されてElapsedイベントが発生した場合、TimerEnabledは値を変更しません。 – Vallo

関連する問題