public readonly int SDataCount; // number of data points in chart / series /// <summary> /// ViewModel constructor, requires data source and number of data point in series / chart /// </summary> /// <param name="volume">data source</param> /// <param name="nseries">number of data points</param> public ViewModelVolumeChart(DataTSVolume volume, int nseries) { // init properties DSVolume = volume; SDataCount = nseries; VBid = new ObservableCollection <DataPoint>(); VAsk = new ObservableCollection <DataPoint>(); VTraded = new ObservableCollection <DataPoint>(); // pre-allocate data points for (int i0 = 0; i0 < SDataCount; ++i0) { SetCollectionDataPoint(VBid, -1, i0 + 1, 0); SetCollectionDataPoint(VAsk, -1, i0 + 1, 0); SetCollectionDataPoint(VTraded, -1, i0 + 1, double.NaN); SetCollectionDataPoint(VTraded, -1, i0 + 1, double.NaN); SetCollectionDataPoint(VTraded, -1, i0 + 1, double.NaN); } }
/// <summary> /// Update data source and all data point /// </summary> /// <param name="volume">new data source</param> public void ChangeDataSource(DataTSVolume volume) { DSVolume = volume; // set to new data source NewData(true); // update all data points, will cause GUI to redraw }