當收集更改時,如何更新WPF圖表?我正在使用WPF圖表(System.Windows.Controls.DataVisualization.Toolkit.dll版本3.5.50211.1)來繪製一些簡單的數據。數據的類如下所示:如何刷新我用來顯示一些數據的WPF圖表(WPF工具包圖表)
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應該實現一些接口。真正?
謝謝, 戴夫
在我看來,我的EngineMeasurementCollection,m_TorqueCollection是在MainWindow.xaml.cs中定義的,我正從另一個線程上調用的事件訪問它。據推測,當我將EngineMeasurements添加到集合中時,我需要做某種線程鎖定?這裏有一些最佳實踐嗎? – Dave 2010-09-30 15:31:44