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); } } }
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); } } }