2017-07-05 82 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」),其中顯示了計時器的當前狀態,用戶可以啓用或禁用它。此外,我想另一個複選框(「AutoResetCheckbox」)來控制這個計時器是否啓用了Autoreset屬性。最後,如果Autoreset被禁用並且定時器觸發Elapsed事件並因此將Enabled設置爲false,我希望「EnabledCheckbox」自己取消選中。

我該如何做到這一點?

編輯:我可以讓自己的autoreset實現,但有沒有更好的方法?

回答

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