我们可以控制WPF用户控件中的值更新速度吗?

时间:2013-06-03 04:10:10

标签: wpf wpf-controls wpf-4.0

我正在使用自定义wpf控件,并且此控件的值将根据数据库中的通道值更新每20毫秒更改一次。但是我想在这个用户控件中控制速度值更新,以便用户可以轻松理解(这意味着~500ms),在这种情况下我们是否有除线程之外的任何解决方案。

1 个答案:

答案 0 :(得分:2)

在控件和快速变化的数据源之间创建一个缓冲区。

您可以通过创建一个具有属性的类来创建缓冲区,该属性将跟踪其属性的上次更新的时间,并且仅当它超过500毫秒之前将更新属性。

private int _stockRate;
private long _lastUpdate = 0;

public int StockRate
{
    get { return _stockRate; }
    set 
    {
         long now = getTimeInMilliseconds(); // Stopwatch or other timer
         if(now - _lastUpdate > 500ms)
         {
             _stockRate = value;
             _lastUpdate = now;
             OnPropertyChanged("StockRate");
         }
    }
}