【发布时间】:2018-11-05 03:05:14
【问题描述】:
我有一个获取和设置整数列表的属性,我用它来使用 LiveCharts 绘制图表。
这些值是从外部硬件设备传递的。有时,由于硬件问题,这些值可能不可用,在此期间没有值被传递给我的应用程序,因此不会触发该属性。我仍然想绘制值,但作为NaN。
如何检测我的代码中是否没有访问/设置某个属性,比如 10 毫秒?
【问题讨论】:
标签: c# wpf mvvm properties livecharts
我有一个获取和设置整数列表的属性,我用它来使用 LiveCharts 绘制图表。
这些值是从外部硬件设备传递的。有时,由于硬件问题,这些值可能不可用,在此期间没有值被传递给我的应用程序,因此不会触发该属性。我仍然想绘制值,但作为NaN。
如何检测我的代码中是否没有访问/设置某个属性,比如 10 毫秒?
【问题讨论】:
标签: c# wpf mvvm properties livecharts
您可以将 DateTime.Now 分配给属性设置器中的另一个实例变量。然后在 getter 中,如果该值超过 10 毫秒,则可以返回 NaN。如下所示。
DateTime _lastUpdate;
double _value;
TimeSpan _maxInterval = new TimeSpan(0, 0, 0, 0, 10);
public double Value
{
get
{
return (DateTime.Now - _lastUpdate) <= _maxInterval ? _value : double.NaN;
}
set
{
_lastUpdate = DateTime.Now;
_value = value;
}
}
【讨论】:
好吧,我正在寻找的是 Timer 。 ElapsedEventHandler 达到了我正在寻找的目的。
【讨论】: