如何刷新我用来显示一些数据的WPF图表(WPF工具包图表)

时间:2010-09-30 15:15:35

标签: wpf collections charts toolkit

当集合发生变化时,如何更新WPF图表?我正在使用WPF图表(System.Windows.Controls.DataVisualization.Toolkit.dllversion版本3.5.50211.1)来绘制一些简单的数据。数据类如下所示:

public class EngineMeasurementCollection : Collection<EngineMeasurement> 
{ 

} 
public class EngineMeasurement 
{ 
    public int TimeStamp { get; set;}
    public int Speed { get; set; } 
    public int Torque { get; set; } 
    public int Power { get; set; } 
}  

在我的Mainform中,我收到有关事件回调的新数据。这又回到了另一个线程。我查看数据以查看它是否有新的TimeStamp。如果是,我将它添加到我的收藏中。然后我尽职尽责地打电话给

Dispatcher.Invoke(myDelegate, DispatcherPriority.Normal,null) 

让自己回到GUI线程。然后我打电话给:

m_ctrlLineSeriesTorque.ItemsSource = m_TorqueCollection; 

尝试让图表更新。我已经确认我已进入此代码。我还验证了如果我只是在EngineMeasurementCollection的构造函数中输入一些值,我就可以显示图表。当我向集合中添加更多值时,如何更新图表?

在某处我看到图表本身可能有“刷新”方法。我没有看到。另外,我看到也许EngineMeasurementCollection应该是一个“Observable集合”,EngineMeasurement应该实现一些接口。真?

谢谢, 戴夫

1 个答案:

答案 0 :(得分:3)

是的,您的EngineMeasurmentCollection应为ObservableCollection。然后,您将无需做任何事情,只需将项目添加(或删除)到集合中,WPF绑定系统将负责更新图表。这就是你应该使用可观察集合的原因。