是否可以将复选框绑定到System.Timers.Timer的Enabled属性?
我可以将它包装在一个返回其状态的布尔属性中,如下所示:
public bool TimerEnabled
{
get { return _timer.Enabled; }
set
{
_timer.Enabled = value;
InvokePropertyChanged(new PropertyChangedEventArgs("TimerEnabled"));
}
}
但是当_timer.Autoreset = false且_timer.Enabled更改值时,我不会收到通知。
我想要一个复选框(“EnabledCheckbox”),其中显示了计时器的当前状态,用户可以启用或禁用它。此外,我想要另一个复选框(“AutoResetCheckbox”)来控制这个计时器是否启用了自动复位属性。最后,如果禁用Autoreset并且计时器触发Elapsed事件并因此将Enabled设置为false,我希望“EnabledCheckbox”自行取消选中。
我如何实现这一目标?
编辑:我可以自己实现autoreset,但有更好的方法吗?
答案 0 :(得分: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。