private void chartViewer1_ViewPortChanged(object sender, ChartDirector.WinViewPortEventArgs e) { DemoModule demo = (DemoModule)treeView.SelectedNode.Tag; if (demo != null) { bool updated = false; DateTime fromDate = dtpFromDate.Value; DateTime toDate = dtpToDate.Value; if (demo.getChartGroup() == 1) { var volQuotes = (from q in dataContext.volquotes where q.stock == Int32.Parse(tickerSymbol.SelectedValue.ToString()) && q.datetime >= fromDate && q.datetime <= toDate.AddDays(1) //&& q.TimeFrame == Int32.Parse(timeFramePeriod.SelectedValue.ToString()) && q.timeframe == 1 // поменяли в связи с тем, что в графиках последняя свеча суммируется по таймфрейму 1, т.е. каждую минуту даже если график таймфреймом более 1 минуты. select q).Count(); if (lastVolCount != volQuotes) { updated = true; lastVolCount = volQuotes; } } if (demo.getChartGroup() == 2) { var settingQuotes = (from sq in dataContext.settingquotes where sq.stock == Int32.Parse(tickerSymbol.SelectedValue.ToString()) && sq.datetime >= fromDate && sq.datetime <= toDate.AddDays(1) //&& sq.TimeFrame == Int32.Parse(timeFramePeriod.SelectedValue.ToString()) && sq.timeframe == 1 // поменяли в связи с тем, что в графиках последняя свеча суммируется по таймфрейму 1, т.е. каждую минуту даже если график таймфреймом более 1 минуты. select sq).Count(); if (lastSettingsCount != settingQuotes) { updated = true; lastSettingsCount = settingQuotes; } } if (updated) { // Check if a demo module node is selected. Demo module is attached to the node // as the Tag property // Clear all ChartViewers for (int i = 0; i < chartViewers.Length; ++i) { chartViewers[i].Visible = false; } // Each demo module can display a number of charts int noOfCharts = demo.getNoOfCharts(); for (int i = 0; i < noOfCharts; ++i) { int chartWidth = rightPanel.Width - 50; int chartHeighth = rightPanel.Height - 110; demo.createChart(chartViewers[i], "" + i, Int32.Parse(tickerSymbol.SelectedValue.ToString()), Int32.Parse(timeFramePeriod.SelectedValue.ToString()), fromDate, toDate, (int)trbSize.Value, chartWidth, chartHeighth, priceTypeCombo.SelectedIndex); chartViewers[i].Visible = true; } } } }