2012-06-20 3 views
1

Итак, я работаю над созданием редактора WPF TeeChart, но у меня возникают некоторые проблемы с попыткой изменить тип серии на диаграмме с использованием статического метода:
Steema.TeeChart.WPF.Styles.Series.ChangeType(ref Series s, Type newType)TeeChart WPF - проблемы с выпуском серии - листы оригинала, стили смешивания

оригинальная идея код:

//user has selected a sample chart showing the Series Type they want 
Type targetType = selectedChart.Series[0].GetType(); 

//SelectedItems contains Series objects already on a chart 
for (int i = 0; i < SelectedItems.Count; i++) 
{ 
    Series sS = (Series) SelectedItems[i]; 
    Series.ChangeType(ref sS, targetType); 
} 


при выполнении приведенного выше кода, мой график заканчивается двумя сериями: оригинал и новой серии, которая некоторое сочетание оригинала и цель.

Например, если я поставил на диаграмме число точек с четырьмя случайными значениями, то запустите приведенный выше код с единственной вещью в SelectedItems, являющейся только что созданной группой точек, моя диаграмма имеет новую серию типа Line, но с точечными маркерами на нем, а также с исходными точками.

Я изменил приведенный выше код, чтобы удалить дубликаты, тогда я понял, что что-то удаляло другие элементы из коллекции SelectedItems. Ниже приведен последний код, который удаляет исходную серию, а также работает, когда несколько рядов находятся в коллекции SelectedItems.

//Added List to keep selected items since they were being lost 
List<Series> selected = new List<Series>(SelectedItems.Count); 
for (int x = 0; x < SelectedItems.Count; x++) 
    selected.Add((Series) SelectedItems[x]); 


for (int i = 0; i < selected.Count; i++) 
{ 
    Series sS = selected[i]; 
    int cI = chart.Series.IndexOf(sS); //added to track index in chart 

    Series.ChangeType(ref sS, targetType); 

    //The following line ensures overwite of original Series in chart 
    // since new Series is being created inside above method 
    chart.Series[cI] = sS; 

    //finally, remove original Series from chart 
    chart.Series.Remove(selected[i]); 
} 


Это исправляет проблему с ней, оставляя исходный серии на графике, но я до сих пор не могу понять, почему стиль серии становится какая-то странная смесь оригинала и целевой серии Тип.

Есть что-то, чего я не вижу или не замечаю в своем подходе? Есть ли лучший способ позвонить, чтобы изменить тип серии? Мне не удалось найти какую-либо полезную информацию в документации TeeChart.

Я не думаю, что это поведение предназначено, потому что, когда я сравниваю вывод, который я получаю от этого метода с помощью редактора WinForms TeeChart Editor, версия WinForms не смешивает стили Series.

ответ

0

Я боюсь, что это ошибка TeeChartWPF, и мы добавили ее в отчет об ошибке с номером [TW16016232]. Мы постараемся исправить это до предстоящих релизов TeeChartFor.Net. С другой стороны, я предлагаю вам обходное решение для решения вашей проблемы, заключающееся в том, что в этом случае исходная серия заменяется на Points Series.

private void InitializeChart() 
     { 
      tChart1.Series.Clear(); 
      Steema.TeeChart.WPF.Styles.Line line1 = new Steema.TeeChart.WPF.Styles.Line(tChart1.Chart); 
      Steema.TeeChart.WPF.Styles.Line line2 = new Steema.TeeChart.WPF.Styles.Line(tChart1.Chart); 
      line2.FillSampleValues(); 
      line1.FillSampleValues(); 

     } 

     private void button1_Click(object sender, RoutedEventArgs e) 
     { 
      for (int i = 0; i < 2; i++) 
      { 
       Steema.TeeChart.WPF.Styles.Points s = new Steema.TeeChart.WPF.Styles.Points(tChart1.Chart); 
       s.DataSource = tChart1[i]; 
       tChart1[i].Visible = false; 
      } 

     } 

Не могли бы вы сообщить нам, если предыдущий код работает так, как вы ожидаете, на данный момент?

Я надеюсь, что это поможет.

Спасибо,

С наилучшими пожеланиями, Sandra Pazos

Steema Поддержка Центральный http://www.steema.com/

 Смежные вопросы

  • Нет связанных вопросов^_^