コード例 #1
0
        public readonly int SDataCount; // number of data points in series / chart

        /// <summary>
        /// ViewModel constructor, requires data source and number of data point in series / chart
        /// </summary>
        /// <param name="ohlc">data source</param>
        /// <param name="nseries">number of data points</param>
        public ViewModelCandleStickChart(DataTSOHLC ohlc, int nseries)
        {
            // init properties
            DSOHLC          = ohlc;
            SDataCount      = nseries;
            CSOpenCloseDown = new ObservableCollection <DataPoint>();
            CSOpenCloseUp   = new ObservableCollection <DataPoint>();
            CSHighLowDown   = new ObservableCollection <DataPoint>();
            CSHighLowUp     = new ObservableCollection <DataPoint>();

            XAxisLabelFormatter = (d0) => "";

            // pre-allocate data points
            for (int i0 = 0; i0 < SDataCount; ++i0)
            {
                for (int i1 = 0; i1 < 3; ++i1)
                {
                    SetCollectionDataPoint(CSOpenCloseDown, -1, i0 + 1, double.NaN);
                    SetCollectionDataPoint(CSOpenCloseUp, -1, i0 + 1, double.NaN);
                    SetCollectionDataPoint(CSHighLowDown, -1, i0 + 1, double.NaN);
                    SetCollectionDataPoint(CSHighLowUp, -1, i0 + 1, double.NaN);
                }
            }
        }
コード例 #2
0
 /// <summary>
 /// Update data source and all data point
 /// </summary>
 /// <param name="ohlc">new data source</param>
 /// <param name="current">current print data array in DataCurrent.Print format</param>
 public void ChangeDataSource(DataTSOHLC ohlc, double[] currentprint)
 {
     DSOHLC = ohlc;               // set to new data source
     NewData(currentprint, true); // update all data points, will cause GUI to redraw
 }