コード例 #1
0
        private void ClearIndicatorPane(IChartIndicator indi)
        {
            var indiPaneCode = indi.CreateOwnPanel ? indi.Name :
                               string.IsNullOrEmpty(indi.DrawPaneDisplay)
                                   ? Localizer.GetString("TitleCourse") : indi.DrawPaneDisplay;

            // проверить соответствие панели ее строковому представлению
            if (indi.DrawPane != null)
            {
                // панель актуальна, не нужно устанавливать
                if (indiPaneCode == indi.GetFullyQualifiedPaneName())
                {
                    return;
                }
                if (indi.DrawPane.Name == indiPaneCode)
                {
                    return;
                }
                // индикатор более не строится на данной панельке

                // снять индикатор с панели
                foreach (var series in indi.SeriesResult)
                {
                    if (indi.DrawPane.Series.ContainsSeries(series))
                    {
                        indi.DrawPane.Series.Remove(series);
                    }
                }

                // если панель была создана самим индикатором
                // удалить панель из списка
                if (indi.DrawPane == ((BaseChartIndicator)indi).ownPane)
                {
                    chart.Panes.Remove(indi.DrawPane);
                }
            }
        }
コード例 #2
0
        private void ClearIndicatorPane(IChartIndicator indi)
        {
            var indiPaneCode = indi.CreateOwnPanel ? indi.Name :
                string.IsNullOrEmpty(indi.DrawPaneDisplay)
                                   ? Localizer.GetString("TitleCourse") : indi.DrawPaneDisplay;
            // проверить соответствие панели ее строковому представлению
            if (indi.DrawPane != null)
            {
                // панель актуальна, не нужно устанавливать
                if (indiPaneCode == indi.GetFullyQualifiedPaneName()) return;
                if (indi.DrawPane.Name == indiPaneCode) return;
                // индикатор более не строится на данной панельке

                // снять индикатор с панели
                foreach (var series in indi.SeriesResult)
                    if (indi.DrawPane.Series.ContainsSeries(series))
                        indi.DrawPane.Series.Remove(series);

                // если панель была создана самим индикатором
                // удалить панель из списка
                if (indi.DrawPane == ((BaseChartIndicator)indi).ownPane)
                {
                    chart.Panes.Remove(indi.DrawPane);
                }
            }
        }