← Zurück

Выбор нового инструмента пользователем (интерфейс)

Доброго вечера. Хочу в обработчике кнопки сделать смену контента кнопки, остановку процесса отрисовки графиков и стирание графиков. Чтобы потом выбирать новый инструмент и заново запускать вывод на график информации. Всё ли верно в нижеприведенном коде?

private void ChartButton_Click(object sender, RoutedEventArgs e)
        {
            if (_candleManager == null)
            {
                
                //Проверяем, чтобы значение тайм-фрейма было указано
                if (TpTimeFrame.Value == null)
                {
                    MessageBox.Show("Введите значение таймфрейм");
                    return;
                }
                //Получаем тайм-фрейм
                var timeFrame = TpTimeFrame.Value.Value.TimeOfDay;
                //Инициируем процесс получения свечей и дальнейшей отрисовки
                RunProcessGetCandles(timeFrame);
                // меняем контент кнопки
                ChartButton.Content = "Очистить график";
            }
            else
            {
                // отписываемся от процесса обработки свечей
                _candleManager.Processing -= ProcessCandle;
                // сбрасываем от рисованные ранее значения элементов графика
                Chart.Reset();
                // меняем контент кнопки
                ChartButton.Content = "Построить график";
            }
        }

Меня интересует метод Chart.Reset(), в нем надо указать один параметр elements (элементы графика), так у меня их 4 (свечи, индикатор, сделки, ордера). Или надо создать коллекцию из этих элементов, а в методе в качестве параметра указать эту коллекцию?

War dieses Thema hilfreich?

Thema teilen

Kommentare (1)

Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen

IvanB
IvanB

UsilaDobry: Доброго вечера. Хочу в обработчике кнопки сделать смену контента кнопки, остановку процесса отрисовки графиков и стирание графиков. Чтобы потом выбирать новый инструмент и заново запускать вывод на график информации. Всё ли верно в нижеприведенном коде?

private void ChartButton_Click(object sender, RoutedEventArgs e)
        {
            if (_candleManager == null)
            {
                
                //Проверяем, чтобы значение тайм-фрейма было указано
                if (TpTimeFrame.Value == null)
                {
                    MessageBox.Show("Введите значение таймфрейм");
                    return;
                }
                //Получаем тайм-фрейм
                var timeFrame = TpTimeFrame.Value.Value.TimeOfDay;
                //Инициируем процесс получения свечей и дальнейшей отрисовки
                RunProcessGetCandles(timeFrame);
                // меняем контент кнопки
                ChartButton.Content = "Очистить график";
            }
            else
            {
                // отписываемся от процесса обработки свечей
                _candleManager.Processing -= ProcessCandle;
                // сбрасываем от рисованные ранее значения элементов графика
                Chart.Reset();
                // меняем контент кнопки
                ChartButton.Content = "Построить график";
            }
        }

Меня интересует метод Chart.Reset(), в нем надо указать один параметр elements (элементы графика), так у меня их 4 (свечи, индикатор, сделки, ордера). Или надо создать коллекцию из этих элементов, а в методе в качестве параметра указать эту коллекцию?

Да, в метод Chart.Reset нужно подавать коллекцию. Если Вы используете _candleManager в качестве признака для выбора действия нажатия кнопки, то ему необходимо присваивать null, когда пользователь нажал на кнопку "Очистить график".

UsilaDobry