public MainViewModel() { var dummyDataProvider = new DummyDataProvider(); var lineData = new XyDataSeries <double, double>() { SeriesName = "TestingSeries" }; _renderableSeries = new ObservableCollection <IRenderableSeriesViewModel>(); RenderableSeries.Add(new LineRenderableSeriesViewModel() { StrokeThickness = 2, Stroke = Colors.SteelBlue, DataSeries = lineData, StyleKey = "LineSeriesStyle" }); // Append the initial values to the chart var initialDataValues = dummyDataProvider.GetHistoricalData(); lineData.Append(initialDataValues.XValues, initialDataValues.YValues); // Subscribe to future updates dummyDataProvider.SubscribeUpdates((newValues) => { // Append when new values arrive lineData.Append(newValues.XValues, newValues.YValues); // Zoom the chart to fit lineData.InvalidateParentSurface(RangeMode.ZoomToFit); }); }