Devexpress - исключение нулевой ссылки после вставки ранее удаленной серии - PullRequest
0 голосов
/ 13 августа 2011

У меня странная проблема с управлением XtraChart. Я поместил элемент управления XtraChart в форму и создал один ряд данных. После инициализации формы я создаю переменную, которая содержит ссылку для этой серии

public XtraChartSeriesPoint()
       {
           InitializeComponent();
           KeySeries = (Series)chartControl1.Series["key"];
       }

На данный момент все в порядке. Однако проблема возникает, если я начинаю манипулировать базами данных. Если я удаляю серию KeySeries из диаграммы, а затем снова добавляю эту серию, я получаю исключение nullReferenceException.

chartControl1.Series.Remove(KeySeries); // everything OK - points are removed from diagram 

chartControl1.Series.Add(KeySeries); // here I get nullReferenceException

Вот ссылка на пример проекта. http://www.4shared.com/file/6CycXjJr/DevexpressTraining.html Чтобы получить ошибку, просто нажмите кнопку «Удалить» и затем добавьте

Ответы [ 2 ]

1 голос
/ 15 августа 2011

При удалении серии вызывается метод Dispose.Таким образом, он становится недействительным и больше не может быть использован.Если вы хотите скрыть серию, используйте ее свойство Visible.

0 голосов
/ 18 августа 2011

коммандос, что ты делаешь, когда снял сериал?

Я создал новый проект, поместил элемент управления Chart в форму, а затем просто нажал кнопку «Готово» в мастере, чтобы получить базовую диаграмму из одной серии. У меня тогда на Form Load есть

series = ChartControl1.Series(0)
ChartControl1.Series.Remove(series)
ChartControl1.Series.Add(series)

Это не вызывает никаких исключений. Поэтому я предполагаю, что это как-то связано с вашей обработкой серии, такой как источник данных.

Если бы вы могли разместить в своем вопросе трассировку стека исключения, это позволило бы нам лучше понять его.

Итак, посмотрите, что вы делаете с серией или графиком, пока он отсоединен, так как я считаю, что именно в этом может заключаться ваша проблема.

...