Example #1
0
        public ChartViewModel()
        {
            ViewportManager = new DefaultViewportManager();

            var dataSeries = new XyDataSeries <float, float>();
            var x          = new float[] { 1, 2, 4, 5, 6, 7 };
            var y          = new float[] { 4, 2, 3, 1, 2, 3 };

            dataSeries.SeriesName = "Series 1";
            dataSeries.Append(x, y);

            var viewModel = new LineRenderableSeriesViewModel {
                DataSeries = dataSeries, StyleKey = "LineStyle"
            };

            RenderableSeriesViewModels.Add(viewModel);

            var annotation = new ExHorizontalLineAnnotation {
                Caption = "Annotation", Y1 = 2
            };

            Annotations.Add(annotation);

            ViewportManager.ZoomExtents();
        }
        public ZoomHistoryMvvmViewModel()
        {
            _rangeHistoryCompare = new RangeHistorySameCompare();

            var vm1 = new LineRenderableSeriesViewModel
            {
                DataSeries      = FillData(new XyDataSeries <double, double>(), "firstDataSeries"),
                XAxisId         = _xAxisKey.Id,
                YAxisId         = _y0AxisKey.Id,
                StrokeThickness = 2,
                Stroke          = Color.FromArgb(0xff, 0x64, 0x95, 0xed),
            };

            var vm2 = new LineRenderableSeriesViewModel
            {
                DataSeries      = FillData(new XyDataSeries <double, double>(), "secondDataSeries"),
                XAxisId         = _xAxisKey.Id,
                YAxisId         = _y1AxisKey.Id,
                StrokeThickness = 2,
                Stroke          = Color.FromArgb(0xff, 0xff, 0x45, 0x00),
            };

            RenderableSeriesViewModels = new List <IRenderableSeriesViewModel> {
                vm1, vm2
            };

            _zoomHistoryManager = new ZoomHistoryManager();
            _zoomHistoryManager.RangeHistoryChanged += OnRangeHistoryChanged;

            _undoCommand = new ActionCommand(() =>
            {
                if (_zoomHistoryManager.CanUndo())
                {
                    _zoomHistoryManager.Undo();

                    var index = RangesHistory.IndexOf(_selectedRange, _rangeHistoryCompare);

                    _selectedRange = RangesHistory[index - 1];

                    OnPropertyChanged("SelectedRange");
                    RaiseUndoRedoCanExecute();
                }
            }, () => _zoomHistoryManager.CanUndo());

            _redoCommand = new ActionCommand(() =>
            {
                if (_zoomHistoryManager.CanRedo())
                {
                    _zoomHistoryManager.Redo();

                    var index = RangesHistory.IndexOf(_selectedRange, _rangeHistoryCompare);

                    _selectedRange = RangesHistory[index + 1];

                    OnPropertyChanged("SelectedRange");
                    RaiseUndoRedoCanExecute();
                }
            }, () => _zoomHistoryManager.CanRedo());
        }
        private void InitializeRenderableSeries()
        {
            var renderableSeries = new  LineRenderableSeriesViewModel
            {
                Stroke          = Colors.Blue,
                StrokeThickness = 2,
                PointMarker     = new EllipsePointMarker()
            };

            var dataSeries = new XyDataSeries <double>();

            for (int i = 0; i < 11; ++i)
            {
                dataSeries.Append(i, i - 3);
            }
            renderableSeries.DataSeries = dataSeries;

            RenderableSeries.Add(renderableSeries);
        }
Example #4
0
        public UsePaletteProviderViewModel()
        {
            // In the MvvmSciChartSurface, we don't have to create a dataset. Just create DataSeries and append as usual
            var dataSeries0 = new XyDataSeries <DateTime, double>();
            var dataSeries1 = new XyDataSeries <DateTime, double>();
            var dataSeries2 = new OhlcDataSeries <DateTime, double>();
            var dataSeries3 = new OhlcDataSeries <DateTime, double>();
            var dataSeries4 = new XyDataSeries <DateTime, double>();
            var dataSeries5 = new XyDataSeries <DateTime, double>();

            var dataSource = DataManager.Instance;

            // Prices are in the format Time, Open, High, Low, Close (all IList)
            var prices = dataSource.GetPriceData(Instrument.Indu.Value, TimeFrame.Daily);

            var dataOffset = -1000;

            // Append data to series
            dataSeries0.Append(prices.TimeData, dataSource.Offset(prices.OpenData, dataOffset * 2));
            dataSeries1.Append(prices.TimeData, dataSource.Offset(prices.OpenData, -dataOffset));
            dataSeries2.Append(prices.TimeData, prices.OpenData, prices.HighData, prices.LowData, prices.CloseData);
            dataSeries3.Append(prices.TimeData, dataSource.Offset(prices.OpenData, dataOffset),
                               dataSource.Offset(prices.HighData, dataOffset),
                               dataSource.Offset(prices.LowData, dataOffset),
                               dataSource.Offset(prices.CloseData, dataOffset));
            dataSeries4.Append(prices.TimeData, dataSource.Offset(prices.CloseData, dataOffset * 3));
            dataSeries5.Append(prices.TimeData, dataSource.Offset(prices.OpenData, dataOffset * 2.5));

            // Add the DataSeries / RenderableSeries to the ChartSeriesViewModel collection
            // These are paired so if you want to remove the series, just remove the viewmodel (it will remove the data and renderable series)
            // Or, if you want to change the RenderableSeries properties, just update the RenderSeries on the ChartSeriesViewModel

            var mountainSeriesVm = new MountainRenderableSeriesViewModel
            {
                DataSeries = dataSeries0,
                StyleKey   = "MountainSeriesStyle"
            };
            var lineSeriesVm = new LineRenderableSeriesViewModel
            {
                DataSeries = dataSeries1,
                StyleKey   = "LineSeriesStyle"
            };

            var ohlcSeriesVm = new OhlcRenderableSeriesViewModel
            {
                DataSeries = dataSeries2,
                StyleKey   = "OhlcSeriesStyle"
            };

            var candlestickSeriesVm = new CandlestickRenderableSeriesViewModel
            {
                DataSeries = dataSeries3,
                StyleKey   = "CandlestickSeriesStyle"
            };

            var columnSeriesVm = new ColumnRenderableSeriesViewModel
            {
                DataSeries = dataSeries4,
                StyleKey   = "ColumnSeriesStyle"
            };

            var scatterSeriesVm = new XyScatterRenderableSeriesViewModel
            {
                DataSeries = dataSeries5,
                StyleKey   = "ScatterSeriesStyle"
            };

            _chartSeriesViewModels = new List <IRenderableSeriesViewModel>
            {
                mountainSeriesVm,
                lineSeriesVm,
                ohlcSeriesVm,
                candlestickSeriesVm,
                columnSeriesVm,
                scatterSeriesVm
            };
        }